New to the forums? Click here to read the "How To" Guide.

Developer? Click here to go to the Developer Forums.

Could VR use it's own programming language?

ArowxArowx Posts: 383
Hiro Protagonist
edited September 2014 in General
After hearing the Jonathan Blow talk about games having their own programming language, it got me thinking could VR be an ideal candidate for the development of a new programming language.

I think a language that provided features to allow easy multi-threading, across CPU's, GPU's and the Cloud, write shaders, have physics, audio, video, haptics and other features built in making it very easy to write VR experiences/simulations that run extremely fast and can take advantage of the Cloud and CPU/GPU processing.

What features would your ideal VR programming language have?

On a side note could syntax be optional/flexible so people that prefer a syntactical style could choose their own style.
sigBlock.png

Comments

  • Gonna be honest, I have no idea how a "Programming Language" could have built in physics.
    NZ DK2 Order: May 26, 2014 06:00 PM PDT
    Status:Delivery Complete
  • ArowxArowx Posts: 383
    Hiro Protagonist
    Well programming languages often have primitive data types e.g. integer, string, boolean.

    I guess a VR language would have built in primitives for physics e.g. force, gravity, joint, spring, mass

    I think Finite State Machines would be handy primitive type.

    Audio features 3d sfx and text to speech and speech to text would be great features.
    sigBlock.png
  • erickerick Posts: 125
    Brain Burst
    Programming languages are nothing more than human readable command syntax. In the end, everything is translated into machine code (either by the compiler or JIT). VR is essentially an I/O device and I don't see any benefit for a cross platform "language" that targets such a device. Everything you mentioned can be achieved through an API layer.

    Custom classes and structs don't need to be primitive data types. I'm not a low-level design expert but I'm not even sure it's possible since primitive data types are representative of their data as it's stored in memory. Complex built-in data types are not exactly primitive data types and really are the same as custom objects.
  • What VR could use is a dedicated hardware chipset designed & specializing in physics simulations, in the same way as PhysX. This would then have an API layer.
  • owenwpowenwp Posts: 681 Oculus Start Member
    What you are describing is essentially a game engine not a language, and there are plenty of them that are being optimized for VR.
  • owenwp wrote:
    What you are describing is essentially a game engine not a language, and there are plenty of them that are being optimized for VR.

    That said, the need for realistic physics in VR is pretty high. I noticed that my game using JBullet simply was too hard to play with all the physics glitches.
  • ArowxArowx Posts: 383
    Hiro Protagonist
    You could do something similar to the idea of java, it's designed to run on a virtual machine. It's language is 'translated' into bytecode which can then be run against any device than can run a java virtual machine.

    But then what if our VR language was designed to run on a Virtual Reality machine (VRM). A VRM would run our virtual world simulation or game.

    So what features would a VRM need or conversely what features would a VR language need?
    sigBlock.png
  • erickerick Posts: 125
    Brain Burst
    Arowx wrote:
    You could do something similar to the idea of java, it's designed to run on a virtual machine.

    Yes; it uses JIT compilation. It's the most obvious for cross-platform development but unfortunately, a virtual machine also adds additional resource overhead. However, if that's what you want, just code in Java or .NET. There's no need for a custom language.
    Arowx wrote:
    But then what if our VR language was designed to run on a Virtual Reality machine (VRM). A VRM would run our virtual world simulation or game.

    I don't know what you mean.

    A virtual machine is sort of similar to emulation. The virtual machine is unique to the platform. Standard machine calls are coded in the language. The virtual machine translates those generic calls into platform specific machine code.

    A "virtual reality machine" sounds like it's managing a virtual environment. That would simply be a game engine.
  • SharpfishSharpfish Posts: 1,303
    Neo
    edited September 2014
    errr...
    EX DK2, EX VIVE, EX PSVR, Currently RIFT CV1 | VR developer
    Poster of the week who never got a T-Shirt ;( dayum they looked tasty!
  • Virtual Reality Machine?! :geek:

    Is that a PC + Rift, or you add more to it?
  • CgpnzCgpnz Posts: 455
    What we need is an environment formed by a scheme (xml structure) that defines a very wide
    capability that is implemented in a very complex engine. You write into this scheme using any
    language/editing environment you choose. Such a schema implementation would be design
    independent.

    Separate this from the overbearing editing enviroment which are closed source corporate gate-wayed.

    So the editing environments/implementation engines such as cryengine, ue4, unity, uninge
    are too genre design specific. This is why games are stuck in the fps rut with the BFG thingy.
  • ArowxArowx Posts: 383
    Hiro Protagonist
    Cgpnz wrote:
    What we need is an environment formed by a scheme (xml structure) that defines a very wide
    capability that is implemented in a very complex engine. You write into this scheme using any
    language/editing environment you choose. Such a schema implementation would be design
    independent.

    Separate this from the overbearing editing enviroment which are closed source corporate gate-wayed.

    So the editing environments/implementation engines such as cryengine, ue4, unity, uninge
    are too genre design specific. This is why games are stuck in the fps rut with the BFG thingy.

    I would disagree, as XML is a text based data format, so it is slower than binary formats to parse and use. It has already been used by the WWW and really can you imagine what the internet would be like with just static XML and not javascript.

    If you would like VR to by static and slow to load, chew through your bandwidth and then depend upon each VR browser (game engines) interpretation of what your XML syntax actually means in 3D.

    Ask any mature web developer or games programmer if the VR web should be built with XML and I think the answer will be a simple NO.

    But if we make a VRM and a VR language then it can parse the data you send to it any way you want. That's the flexibility of using a language.

    And a VRM is not just a game engine it's aim is to be a standard that any VR world can build to that would allow any VR Browser or game engine to run it. Also any game engine can export their games to be played on a VRM and regardless of device or browser anyone can experience that VR product.
    sigBlock.png
  • erickerick Posts: 125
    Brain Burst
    Cgpnz wrote:
    What we need is an environment formed by a scheme (xml structure) that defines a very wide
    capability that is implemented in a very complex engine. You write into this scheme using any
    language/editing environment you choose. Such a schema implementation would be design
    independent.

    I mostly agree with Arowx. That would mean deserializing every game asset when you load an area into memory. Plus it would require a huge amount of additional storage because you're limiting the usable bytes to the available character set while adding a large amount of syntax. Especially for XML; the syntax overhead of XML is one of the reasons JSON was created. You could compress the data but you'd slow performance further. It would really create an unnecessary waste of time and storage. It's far, far more efficient to store data in binary.

    However, your suggestion does have merit. It would be nice if there was a open standard export/import format for assets (both 2D and 3D).
    Arowx wrote:
    But if we make a VRM and a VR language then it can parse the data you send to it any way you want. That's the flexibility of using a language.

    And a VRM is not just a game engine it's aim is to be a standard that any VR world can build to that would allow any VR Browser or game engine to run it. Also any game engine can export their games to be played on a VRM and regardless of device or browser anyone can experience that VR product.

    You aren't even clarifying what a VRM is.

    EDIT: I was in a meeting when I replied but now that I'm reading it again, it's sounding more like you're describing basically what I suggested above: an open standard for representing assets. That's not a programming language or anything like a VM environment.
  • mtamta Posts: 317
    A library would be useful, as an example recently I created a rift application where an object property needed to change when I looked at it. This involved several methods combining a look object attached to the camera, raytracing and collision to return the object data. This could all be rolled into one method with some target parameters.
  • bar10drbar10dr Posts: 60
    Brain Burst
    vr++

    Instead of integers we could have it represent how deep the rabbit hole goes

    Let's do this
  • CgpnzCgpnz Posts: 455
    Arowx wrote:

    Ask any mature web developer or games programmer if the VR web should be built with XML and I think the answer will be a simple NO.
    They would refer you back to what html and AJAX is.

    A schema in the form of xml is not necessarily a storage scheme. You can do whatever bit serialisation or indexing you like.

    The main point is the open sourcing of such a very wide and diverse schema and the implementation into a back end engine WITHOUT the closed environment of an editor. All the engines have gone down this route hoping to lock their users in. Of course this is a commercial imperative, but so is the open source imperative. And BOY do we need it now. There needs to be such a revolution.

    A task: figure out the number of coders employed by the top several engines. You might be surprised as to its low number.
    In effect nobody but them do the innovation at large. Yes we have all the indies all doing parallel very old wheel reinvention. As Micheal Abrush said 'anything you come up with has already been done' paraphrasing.
  • CgpnzCgpnz Posts: 455
    erick wrote:
    the syntax overhead of XML is one of the reasons JSON was created. You could compress the data but you'd slow performance further. It would really create an unnecessary waste of time and storage. It's far, far more efficient to store data in binary.

    JSON (javascript object notation) is a serialisation of nested hashes (key/value pairs), a basis of AJAX web interactive.
    So yes for data transmission, but we need a flexible schema definition and automated implementation. XML is not the means to define schemas, just that we got a schema defined somewhere.

    I got (book and kindle) the fantastic web design book 'Ajax Design Patterns', the best by far of the range of web design guides.
  • AxelBernadotteAxelBernadotte Posts: 194
    Hiro Protagonist
    Would not the VRM need to automatically generate a GUI using visual basic, so that it can do dns-queries and traceroutes? Like in CSI: https://www.youtube.com/watch?v=hkDD03yeLnU
  • First you tell me that there could be a "Virtual Reality Machine" (whatever that is) and that you think it would be very nice idea to have "byte-code" execution of some new language in a Virtual Machine. Then you claim XML is bad for the web... Come on...

    @AxelBernadotte, GUI Interface using Visual Basic is all we need :mrgreen:
  • erickerick Posts: 125
    Brain Burst
    Cgpnz wrote:
    A schema in the form of xml is not necessarily a storage scheme. You can do whatever bit serialisation or indexing you like.

    I'm confused by how you worded this. Are you talking about a schema or XML? I agree that a schema is not for data storage. Yet, XML is for data storage.
    Cgpnz wrote:
    JSON (javascript object notation) is a serialisation of nested hashes (key/value pairs), a basis of AJAX web interactive.

    That's not exactly correct. JSON has many uses beyond AJAX. Furthermore, AJAX stands for Async JavaScript and XML. Obviously, JSON can be used instead of XML but the point is that JSON was never a requirement of AJAX.
    Cgpnz wrote:
    So yes for data transmission, but we need a flexible schema definition and automated implementation. XML is not the means to define schemas, just that we got a schema defined somewhere.

    No. I agree that schema definitions (like WSDL) are extremely useful for custom web services. I've build plenty of services for partners and clients. It's not necessary for a documented open industry standard. For example, OAuth is a common standard that utilizes JSON. It has a well documented protocol design which is why a schema is unnecessary.
  • ArowxArowx Posts: 383
    Hiro Protagonist
    Really you want to stream virtual reality as XML data, I know the internet is getting faster but just look at the gigabytes used by the latest triple AAA games and maybe just maybe it's not a great idea.

    OK it works reasonably well for blocky 2D web pages with mainly text data. But it's not going to work well with massive 3D virtual worlds.

    Well maybe it would if they were mainly procedurally generated from seed data, but most game engines stream their data.

    But you're getting side tracked, the topic is on the possibility of having a language dedicated to VR, a language that would make it easy to make VR experiences.
    sigBlock.png
  • CgpnzCgpnz Posts: 455
    xml is a distraction. I'm at this moment for the past number of years being developing a perl based
    sdk that can create limited in scope, but nevertheless massive in scale geometry.
    For example I have simple layout data structures, that define a house, with solid wall and windows
    outputted to surfaces.

    Currently making a maze algorithm. This will be outputted to the Tuscany xml format
    with walls. I can make mazes thousands of step block long.

    Unfortunately there is no animation at all in the tuscany 'engine'. This is where the schema
    standard definition comes in. We need something like the Collada scheme, which is quite large,
    but is there any engine that implements it? Engine makers specifically lock users in, such openness
    is out. They lock object integration into painful manual artist sweat shops.

    A next development task probably is the reuse of the animation node system of the PVR iphone graphics
    developer ImgTech. I made a perl interface to this several years back.

    This is all I need, my perl sdk has a xml interface to make VR walkthroughs.
Sign In or Register to comment.