MALE SPEAKER: Questions from the audience?
And like I said keep it concise and let's
get-- so first question.
Who's got a question?
So the question is- where's the hardware in all of this?
Are we lagging behind on the hardware side?
What do you see coming around the corner?
TONY: Don is in the restroom.
He should answer this.
I think he effectively answered it.
Here you go.
Did you hear the question?
DON: I did not hear the question.
TONY: It's about hardware.
One more time--
DON: One more time, what is the question?
TONY: Where is the 60 frames a second hardware?
When is that coming, is the question.
DON: The 60 frames a second hardware.
TONY: The true 60 frames per second enabling hardware,
when is that coming?
DON: For PS4 or just in general?
OK.
Well I mean you can hit that now.
It just really depends on your application.
So I mean it's there.
You can boot up the FPS tracker and actually see
what you're doing.
And you can certainly hit 60 FPS,
but yeah, I'm not really sure what we're getting at here.
TONY: All right I'm going to add to that.
I think Don already answered it.
Here's the thing- any application
you write can run at one frame per second,
on really good hardware.
It's all about how you write the software.
Don spoke about earlier.
So, yeah, there's going to be some sensitivity.
Some devices are going to run faster than others.
But in general, I think you need to performance profile
for any device you're building for,
and you get 60 FPS on anything, if you build your application
correctly.
Do you add to that?
He doesn't want to touch that.
Next?
MALE SPEAKER: 10 foot pole, anyone?
So yes?
DON: So the question was, can you
browse WebGL content on the PS4?
The answer is no, not at this current time.
Don't look at me like that.
[LAUGHTER]
AUDIENCE: Follow up, why?
DON: I mean obviously, we want to enable more and more
for our browser.
At this current time, we don't enable
WebGL for just general things on the web.
That could potentially change at some point in the future,
but I can't really say when or where or why that
would be the case.
So I figured I get this question,
but I very much apologize for my evasive answer there.
TONY: The question has there been much acceptance
of the glTF format in the general web community so far?
Right?
Answer, no.
But there's a good reason for that,
which is we're really not promoting it too much yet.
I talk about in my talks.
Fabrice mentioned it in passing.
It's a new format.
In fact, we have not even published a specification yet.
But we're doing all the work out in the open.
The spec itself is written in a JSON schema that you can go
look at.
There's like zero pros.
If you want a tutorial on it, forget it.
You got to come talk to me and Fabrice or whatever.
But it's all being done out in the open.
We're building prototypes out in the open.
Fabrice has got one on the montage JS framework.
I've built one on three.js that loads glTF.
I showed it to you tonight.
So all that's being done out in the open,
but the Khronos Group-- and this is a Khronos project--
these are the people who made the COLLADA
format and the WebGL standard, in fact--
are doing it as an R&D project that at some point
we want to promote as maybe a new standard.
Essentially as the kind of format
that you would do with COLLADA back in the day-
get all your data out of your modeling packaging
and into an application, but this one for the web.
We're going to do that someday, maybe this year,
but we did not want to rush it.
We actually spoke about trying to standardize this this year.
Game developers conference coming up in March--
we want to get the standard all ready
and get people using and all that.
And then Remi, who's not here tonight-- Remi Arnaud who
created COLLADA-- said, why do we get it
right first a little bit more, get developers using it,
and then we'll start promoting it?
And then we'll start trying to standardize it?
So long story short, it's still a little bit early.
I am having individual conversations
with lots of people who want to try
to build it into an application now.
But we're talking about kind of a 0.8 version of the formats.
Really not cooked yet.
So that was question one.
MALE SPEAKER: Right on.
We only have one question per person--
TONY: Oh there we go.
Sorry, Josh.
MALE SPEAKER: Come back to that one.
We have other people-- go for it.
DON: I mean honestly I--
MALE SPEAKER: Repeat the question.
DON: OK so he was asking if I actually had more time,
what exactly would I do further on the PS4?
I mean I really felt as though I hit all the things I wanted
to hit, in terms of the whole optimization thing.
Obviously, there's a lot of other people's code involved,
because this was basically a port.
I mean if I were doing the whole thing-- me, myself,
and I-- I'd probably avoid JavaScript and probably
go with something like Dart.
Especially now, because at this point in time,
it's better to think of JavaScript as nothing more
than assembly language, and use the tools, and languages
you actually feel productive in.
So in that sense, I feel a whole hell of a lot
more productive in Dart.
And I did kind of want to go that route,
but didn't want to add any additional overhead,
because I was interfacing with a bunch of JavaScript code.
TONY: So the demo I showed earlier, the Unreal Engine
demo, was done with this technology called Emscripten.
Emscripten takes code that has been compiled by a C compiler
or C++ compiler into what they call intermediate code.
It's basically byte codes that ultimately
get turned into machine language by the time the executable has
been linked.
So if you're building something for Windows or the Mac,
you'll use a C compiler and ultimately, you'll
get machine code.
But it goes through this thing called LLVM, intermediate code.
Emscripten takes that LLVM and somehow, miraculously, turns it
into JavaScript that can be executed in your web browser.
The tool was built at Mozilla, the Firefox folks.
And they actually have done a bunch of different ports
and projects with it.
The most notable one being this Unreal Engine level
I showed you.
They did this in a week.
Now I'm sure this was a week of like five
people on each team for Mozilla and Unreal, Epic Games.
I don't have the details on that,
but I'm guessing, because it's pretty involved.
I am now currently working on an Emscripten project myself,
so I could tell you firsthand, I went back and did something
I haven't done and didn't think I would do for years,
which was get a Windows machine.
[LAUGHTER]
I'm even running Windows 8.
I won't say anymore.
I got a C++ compiler.
That was OK.
I mean it's been a few years, but I did it.
I compiled stuff, and then I ran this Emscripten tool on it.
And it actually is working.
And I've spent about two weeks on this project I'm on.
I can't say what it is.
And it's not well documented.
My biggest complaint, if anything,
is the tools seem to work, but you've
got to spend a lot of time trying
to intuit what's going on.
But what I showed you-- that 60 frames
a second, well 30 on my machine--
but I've seen running at 60 on some higher end hardware,
does a great job.
We're getting this really great frame rate from something
that, if you think about it-- I don't
know if you know Unreal-- the app itself,
the games are built in a scripting language.
So we not only have C++ code compiled into JavaScript,
the JavaScript itself is running a language interpreter
for Unreal script, which the game was written in.
So we have a cross-compiled application
that's got an embedded scripting language
interpreter running in it.
And if any of you guys know what interpreters are,
you know that's a big deal.
And I mean you saw yourself.
That was kind of amazing.
Long story short is Emscripten is great,
but you've got to suffer through a lot of lack of documentation.
And Google's your friend on that one.
There's a lot of people out there
who've suffered through the same problems as you
and that's what I've been doing this week.
There you go.
MALE SPEAKER: OK so me coming from the real time
communications aspect, I think--
[AUDIENCE]
MALE SPEAKER: No.
Yes, so the first question was, what
is the question that I should be asking a year from now?
What are the challenges going forward, right?
So one of the biggest hypes these days
is connected devices, right?
This is where the real time communication
plays an absolutely critical role- how it's all done,
how it's all managed.
We have these gazillions of devices out there.
Another absolutely critical question in this space,
is security.
Once you open up your home, you open up your health,
you open up basically your personal stuff, that's
going to be absolutely crucial.
And then the question is, what happens
when things just don't work- like you are on a subway,
or you are you're on an airplane?
These are kind of the tough questions in our space.
TONY: I think in a year from now,
I'm going to be asking this- why are people still writing
JavaScript to do basic stuff?
Why am I not authoring the tags?
I mean JavaScript's fine-- pick your language, Dart, whatever.
Why am I not just creating content fluidly just in a web
browser, 3D multimedia content, the way
I used to with some HTML tags?
I mean, JavaScript's great.
Canvas is great God bless all these API's.
We wouldn't be where we are without them,
but why am I solving the same problems I was last year?
So in a year from now, if there aren't tags for doing your 3D,
and your other rich media, I'm going
to start asking those questions.
DON: Actually with yours, I mean some of the stuff with Polymer
looks very promising.
I believe there are actually some demos where
you can do that sort of thing already, and just sort
of do markup in 3D.
So it could very well be a thing.
AUDIENCE: But Don--
DON: Yeah?
AUDIENCE: What will you do next year?
[LAUGHTER]
DON: That is a very good question.
TONY: Don's boss is in the room.
DON: Yeah exactly.
Well I mean, more or less with the web, where it's going,
I am very interested in how we can
build better applications on the web.
WebGL is certainly awesome and I enjoy,
yet-- you're like, get to the point already.
Thank you, Teo.
I'm more or less interested in seeing where the web goes,
how we're going to push it, and sort
of what the new technologies are.
AUDIENCE: Where are we going to push it?
DON: Well I mean I think web components are really
where the web it's going to go, because developing with the DOM
is pretty shitty.
And we need to, more or less, keep pushing more of our apps
to the web.
I mean it's a great idea.
You get the collaboration.
You get the mash ups.
You get all these things.
And that's really where applications should be going.
I am very interested in kind of pushing where
3D is sort of fits into that space,
so that's what I'm interested in.
Is that sufficient?
[LAUGHTER]
MALE SPEAKER: Right.
What I think is interesting here is
that what we do now when we start
defining these ways to work with the web
and WebGL is that we have a great responsibility in doing
so, because we will define how people will work it.
And that means that we will define
if this will be a good thing, if it will be the next big thing
or not.
But it's also great responsibility--
it is the greatest responsibility--
but it's also a great opportunity to do that.
So in a year, I think we need to ask ourselves, did we succeed?
And when it comes to the old organic ecosystem view on it
as you said, we need different ways to push our apps through.
We need ways to connect the publishers with the creators.
And even if you don't know what you're doing,
you should be able-- as you said--
even people that have no idea what the web is, or haven't
seen a browser before, should be able to get
in touch with publishers if they have great content.
So I think that's what's going to be
a great big challenge in a year from now.
MALE SPEAKER: I'm probably just going
to be wondering how I can make digital caffeine,
so I don't have to go out and buy it anymore.
That's it.
MALE SPEAKER: I think I'd be wondering, what's
my spot on the waiting list for the next [INAUDIBLE]
So I think we have time for one more question,
then we go off to the raffle.
And for those of you in the overflow
rooms-- look at the camera, over there-- you
can come in here for the raffle to make it easier,
so we don't have to call out and all that.
So one more question.
Who's got the final question?
Maybe your second question?
[AUDIENCE QUESTION]
TONY: No.
[LAUGHTER]
MALE SPEAKER: There was someone else getting up there.
Yep.
OK, go ahead.
[AUDIENCE QUESTION]
DON: You know, none of us are actually on the Chrome GPU
team, so there are some people hanging around
from the Chrome GPU team.
One might be hiding themselves in the back.
So, yeah, Ken.
[APPLAUSE]
TONY: Ladies and gentlemen, for those who don't know,
this is Kenneth Russell.
He's the WebGL Working Group Chair.
And he works at Google.
And he makes WebGL that works in Chrome, which is awesome.
So Ken, you going to give us a sneak peek at WebGL 2?
KEN: OK so first of all, Tony gives me far too much credit.
Where's Brandon and Vangelis?
So those guys back there, please stand up and wave.
So this is Brandon Jones, who did
many of the really super cool WebGL demos, including
iOS rage in WebGL, who's now a member of our team.
Thank you for joining.
And Vangelis Kokkevis, our boss, please tell him
how great we are.
Thank you very much.
AUDIENCE: You're awesome.
KEN: OK so Tony gives me far too much credit.
You know there's this joke about the parrot, who's the chairman.
We don't know what he does, just they call him Chairman.
It's funnier if you tell the joke.
So WebGL 2, so Khronos released a new version
of OpenGL ES that runs in your mobile phones.
And most phones that are coming out now
actually have this standard.
It's of vast improvement over the previous version that's
on previous generation mobile devices
and what WebGL's currently based on.
At Google, and at Mozilla, and at Apple,
we've been working on getting the baseline current WebGL
really robust.
We had some bugs in Chrome.
In Chrome 29, you may remember, WebGL was flaky on Windows.
That's a real problem, because you developers cannot deploy
your content in confidence knowing that maybe it'll break
down some browsers.
Then you fall back to something else, Canvas, something 2D.
You have to redesign your whole app,
because you can't rely on the new technology.
So at Google anyway, we've been working
on retrenching and really making sure
that that baseline is robust.
And we're almost done with that big push.
So the next big push to be finish the WebGL 2 spec, really
get to work on the implementation.
And I said this in a meetup a year ago, or six months ago,
saying, wait six months.
And now I'm saying, well just wait another six months.
But we're getting there.
And I think that the testing infrastructure
will be much better so that you can be guaranteed that you're
going to be able to deploy this stuff immediately as soon
as it's turned on.
AUDIENCE: What will it do when it grows up?
MALE SPEAKER: Take over the world.
KEN: Yeah I think it'll probably reach mid-adulthood,
and then need some coffee with milk in order
to stay awake or something like that.
So it'll do some turbulence issue simulations on the GPU.
I'm pretty sure.
AUDIENCE: Sorry, say that again?
KEN: It'll be doing its own turbulence simulations
on the GPU for its own milk and coffee.
Yeah that's what WebGL 3 is going to do.