A Web Developer at the GDC

A Web Developer at the GDC

What the web can learn from video game development

Today was a great day, for the first time in years I was back into the video game industry world. Before working for Inovia I was a video game programmer, mostly developing in C#, C++ and Python. Now I’m developing a BI platform in Postgres/PHP/JS.

TLDR: Today I had the chance to visit the GDC, and was amazed to discover that both worlds were colliding.

From an experimental status last year, it’s now ready to be shipped in 2016 and every vendor had VR headset in play-test stage: nVidia, Sony, Facebook/Occulus, Epic games, Unity, and a tons of other smaller actors. Most game engines now support it.

VR is fun, that’s a fact. If you don’t get nauseous, you will have a blast. Every marketing department is thrilled by this innovation, looking at the feedback of the different people trying it. Right now limited to its visualization aspect, “VR” is sticked to any head mounted experience — interactive or not. One thing that became clear to me, is that most of VR-coined projects are only “experiences” and not games: nearly no-input, sometimes even videos…

Web VR is lead by Mozilla

Mostly interested by web and browser-related things, I ran through each editor booth, trying to find developers in charge of the web-clients. All big 3d engines that export to “html5” are as of right now just using javascript bindings to c++ via plugins. Which is not what the web expect. No native clients yet? That was before discovering the small mozilla team MOZVR that took time to explain me in details their new js VR engine: A-Frame.

The least that I can say is that A-frame was jaw-droping awesome. They took an awesome 3d rendering Js engine (three.js), put a layer of xml to describe scenes on the top a very flexible entity-component design pattern. Then they finally added to the mix all the bleeding-edge features available to the javascript devs, like SIMD.

60FPS, hundreds of animated and moving entities, in your web browser.

More than the technology showcase, they also support an awesome ecosystem that already generated react-aframe. React-aframe is a simple library that allowed me to transform my 2d React-DOM game, to an awesome 3d React-based VR-ready game in just 5 F*G MINUTES. It confirms our intuition at Inovia that pluggable rendering engine are really the future.

As for the headset, I also discovered the crazy WebVR 1.0 API. My jaw-dropping-level was already at its peak but they told me that they didn’t need any browser plugin to put A-frame on an Occulus Rift. WebVR standardized the interaction between the browser and a head-mounted that also works on the phone (for the cardboardVR-like helmets). And is implemented as of right now.

The web dev has to become a game dev

One of the conversation I had with dmarcos was how the development of VR applications is now between two worlds, the video-game one and the websites. Nearly every week now, a website launches with one experiment that support VR. For example Amnesty international launched 360syria two weeks ago. The pace is accelerating

Web technologies are currently catching up to implement concepts that are already mainstream in the video game technologies for years. For VR, Web developers have to learn the vocabulary, the tools and the design patterns of video game developers. A good illustration is the recent arrival of web-workers, opening up the possibility of multithread architecture that are already the norm in game development. The DOM rendering will eventually be supported by the GPU, just as games, with the constraints associated with this. Recent CSS animations are just the “tween” pattern defined long time ago in any game development framework.

The opposite is also true: game developers are challenged to make their games more accessible. To make them available on always more platforms. They are struggling to put in place standards. Confronting more and more difficulties with their UX and UI. Challenged in scaling their infrastructure. They are inspiring themselves from the web stack which excels in accessibility and efficient UI. If you look at all the last AAA games released last years, you will find tons with super-crappy-ui that modders have changed as soon as they could (cough-cough-skyrim-cough-cough).

Both worlds are integrating technologically. Javascript is the pivot language, the lingua franca of this integration. With the latest tools available, there is no more technical limitations to blend web, mobile, VR and gaming in a single product. We hope that Steam Learn @Inovia will be ready to prepare some material soon enough on those approaches.

Bonus picture: Github white board @GDC

Originally published at inovia.fr on March 20, 2016.