Hacker News new | ask | show | jobs
by samizdatum 3795 days ago
Carmack is just insanely productive. He had a working prototype of the GearVR Netflix app three days after he started working with Netflix to develop it, and pretty much finished the app a week later.

Have a read about how he developed the app:

http://techblog.netflix.com/2015/09/john-carmack-on-developi...

It's almost beyond belief what he managed to accomplish in one and a half weeks. Hacking the Netflix video decoding system, fine-tuning the UX control heuristics, working around DRM limitations, optimizing the power draw and thermals, and much more, all on top of implementing the very polished app itself.

2 comments

He explained in a talk how after Netflix sent an engineer to work with him, the poor lad had to quit of exhaustion and go back home. Carmack's colleague said something like "hey you broke the Netflix guy"
Yeah, the YouTube is better quality, though.

https://www.youtube.com/watch?v=Ti_3SqavXjk&t=55m50s

This link will start playing as Carmack tells the "broken Netflix engineer" story, while recounting how he finished the app in that incredibly short timeframe.

Thanks for sharing. I wound it back to the start and started to watch it.

John made an interesting premise of the gap VR is trying to fill. Essentially, it is filling the gaps that is in your real life with VR. Hmm...Would it better to strive for improvement in your real life?

Virtual reality is perhaps an unfortunate moniker, because it encourages a dichotomisation of reality into "virtual" and "real", and conceiving of these as opposing, or at least orthogonal forces. Thought of in this way, virtual reality seems to promise a compelling-but-ultimately-empty facsimile of reality, the ultimate fulfilment of the escapist dream.

There's a repeating motif in reactions to disruptive technology, where the technology is first viewed from an oppositional mindset, which makes sense, because any disruptive technology will steal time away from other Old Activities that existed before the technology, and people who aren't early adopters only look at the decrease in the time spent on Old Activities.

We saw this motif of oppositional reaction in how people viewed the internet: people are spending so much time in cyberspace that they won't know how to effectively navigate the real world; people are having fantasy cyber-lives instead of spending time in the real world; he's meeting someone he met online, he must not know how to interact with people, etc. But social networks descended on society in an incredibly short period of time, and worked their way into the furthest corners of our lives. The oppositional mindset gave way to an integrative one, where the notion of a "cyberlife", as distinct from a "life", is simply misplaced- the internet is simply a part of Reality, sans prefix and with a capital R, instead of being boxed up in the conceptual category of "the Cyber".

There was another motifical recurrence when smartphones entered the fray. The oppositional critiques were voluminous and eloquent: we're spending so much time texting we're forgetting how to speak to each other; every crack in every interaction is plastered over with the ritualized and mutually fraudulent "notification check", signposting the way to the unravelling of the social fabric..., etc.; you can find the Real World up there, when you hold your head high, with dignity, and not down there, with your head bowed, staring transfixed at a shining rectangle, face ghost-like, bathed in the soft pearlescent glow of vapidity. But at some point, the integrative mindset arrived. It's hard to maintain the oppositional mindset when you're sitting in a restaurant that you just found on Yelp, and are chatting to your friend on WhatsApp, only to have them sit down in front of you. The handoff between "smartphone life" and "real life" is seamless. Smartphones have inextricably woven themselves so far into our lives, that if you ask someone how their smartphone life compares to their real life, they'll just give you a strange look. Smartphones are just a part of life.

I think VR/AR could go in this direction, as just another arrow in our technological quiver. If we start looking at things like social VR, which has the potential to reshape the way we interact remotely, or how architects are today routinely using VR to demo to clients, it's not impossible to believe that the integrative mindset could eventually overcome the oppositional mindset in terms of how we think about VR.

> The video surface was a little more problematic. To provide smooth playback, the video frames are queued a half second ahead, tagged with a "release time" that the Android window compositor will use to pick the best frame each update. The SurfaceTexture interface that I could access as a normal user program only had an "Update" method that always returned the very latest frame submitted. This meant that the video came out a half second ahead of the audio, and stuttered a lot.

> To fix this, I had to make a small change in the Netflix video decoding system so it would call out to my VR code right after it submitted each frame, letting me know that it had submitted something with a particular release time. I could then immediately update the surface texture and copy it out to my own frame queue, storing the release time with it. This is an unfortunate waste of memory, since I am duplicating over a dozen video frames that are also being buffered on the surface, but it gives me the timing control I need.

Oh, Mr. Carmack...

http://developer.android.com/reference/android/graphics/Surf...

http://developer.android.com/reference/android/graphics/Surf...

And I only started coding for Android last month. I guess I'm an 11x programmer. :) ducks

Those APIs aren't available from the NDK, without an extra JNI performance hit.

Also I bet they don't behave 100% the same way, in regards to timing, across devices.

In graphics programming at the level Carmack develops, every ms counts.

He explicitly said he was using SurfaceTexture. That is a Java API, there is no SurfaceTexture in the NDK.
Somehow I don't see him using Java, but if he said so, then ok.