
Zynga’s first foray into WebGL, and how it runs on IE10 - jamesg
http://code.zynga.com/2014/08/zyngas-first-foray-into-webgl-and-how-it-runs-on-ie10/
======
moron4hire
So ZyGL is basically the software rasterizer we all had to write in college
graphics algorithms? So ZyGL is basically nothing more than Three.js, sans the
option to render in SVG elements? And they want to patent this?

Sorry for the language, but seriously, fuck these guys. What complete trolls.
This is completely unacceptable. Software rasterization fallback has been a
thing forever. Actually, you know, longer than OpenGL of any flavor. Cuz that
used to be the only way you could do graphics.

Is there any way I can help to get this patent blocked? And how do we go about
shaming young developers into not joining Zynga just because it's a "game"
company? This isn't the first unethical thing they've done.

~~~
kazinator
Yes; please join the "Ask Patents" stackexchange site:

[http://patents.stackexchange.com/](http://patents.stackexchange.com/)

This site is exactly for this reason: raising patent questions with the goal
of identifying bad patents.

 _" Ask Patents is a question and answer site for people interested in
improving and participating in the US patent system. It's built and run by you
as part of the Stack Exchange network of Q&A sites. With your help, we're
working together to find Prior Art on dangerous and overly broad US Patent
Applications before they become issued Patents. "_

~~~
Alupis
It's been said before, but I'll say it again:

The USPTO does not and will not look at nor use an end-user forums like "Ask
Patents" for the basis of any decision.

~~~
ma2rten
At least in this case they did

[http://www.joelonsoftware.com/items/2013/07/22.html](http://www.joelonsoftware.com/items/2013/07/22.html)

~~~
Alupis
This is Joel puffing a new StackExchagne product... nothing more.

------
mmastrac
Ugh: 'we developed a patent-pending solution called “ZyGL”.'

While there are a bunch of people working to make stuff performant on
browsers, Zynga comes in from behind and starts patenting barely-novel stuff
on top of it.

~~~
tyho
Relevant patent I think:
[https://www.google.com/patents/US20130088491](https://www.google.com/patents/US20130088491)

If the emscripten lot had decided to patent "Method to reconstruct flow
structures from binary machine code" then Zynga would not have the privilege
of porting their game to the web in the first place.

~~~
robterrell
Actually, that's not the relevant patent. That patent is for a technique for
hardware-accelerated 2D animations using 3D meshes on the GPU, and was used
for the game Dream Zoo.

------
realusername
I don't want to spoil their great "innovation patent" but Three.js has
implemented this years ago
([http://threejs.org/docs/#Reference/Renderers/CanvasRenderer](http://threejs.org/docs/#Reference/Renderers/CanvasRenderer)).

~~~
mbrubeck
Does that reconstruct quads as the Zynga post described? From the source code,
it seems to just draw the triangles individually:

[https://github.com/mrdoob/three.js/blob/1769fbfc6c994b51a54c...](https://github.com/mrdoob/three.js/blob/1769fbfc6c994b51a54c15a5c096855fd3cb8a1a/src/renderers/CanvasRenderer.js#L634-L646)

I also don't see any heuristic processing of shaders as described for ZyGL.

~~~
razh
three.js removed support for quads to reduce renderer complexity.

[https://github.com/mrdoob/three.js/blob/master/src/core/Face...](https://github.com/mrdoob/three.js/blob/master/src/core/Face4.js)

[https://github.com/mrdoob/three.js/blob/88092284cbe07723fe2b...](https://github.com/mrdoob/three.js/blob/88092284cbe07723fe2bd677ee594faf948521d4/src/renderers/CanvasRenderer.js#L836)

And the relevant issue:
[https://github.com/mrdoob/three.js/issues/3663](https://github.com/mrdoob/three.js/issues/3663)

~~~
mbrubeck
Even before that change, I don't see any code that automatically reconstructs
construct quads from pairs of triangles. But maybe I'm missing something?

~~~
lunixbochs
(I've been working on OpenGL platform translation for years)

Reconstructing quads from pairs of triangles is just about doable in a one-
liner. The harder part in my opinion is applying texture mapping to the
resulting triangle, but it's not unreasonably difficult.

    
    
        // this depends on your winding
        triangles = [1, 2, 4, 2, 3, 4]
        quads = []
        for i in xrange(len(triangles), 6):
            t = triangles[i:i+6]
            quads += [t[0], t[1], t[4], t[2]]
    

The only things I think are interesting here are their heuristics on shaders
to apply color maps, and the fact they shipped a game with it.

------
pnt12
>"today we wanted to share some of what we learned in the process" >"To tackle
this issue we developed a patent-pending solution"

At first I was surprised, it looked like Zynga was doing something nice for a
change. In the end, it seems all they're sharing is the bad news.

------
vernie
This is all kinds of gross. Way to stay relevant, Zynga.

------
yuhong
As a side note, the August cumulative update for IE11 has improved WebGL
support. I hope they are testing their games with it.

------
epoelke
Zynga? Whats a Zynga?

~~~
kazinator
It's a word that you say when you're _not_ kidding.

Zynga! Yes, I really _am_ trying to patent the obvious, with loads of prior
art.

Its opposite is "bazinga", which means "I was kidding".

~~~
moron4hire
I asked a patent office employee about this. Apparently, a thing is only prior
art if it is patented itself, or is published in an accepted academic journal,
and then only if such things can be found in the ten hours the examiner is
given per patent application.

