Live data from Hacker News

Unity patents ECS

pdfpiw.uspto.gov

131–140 of 175 posts

Re: Unity patents ECS

#131

Ironically, Unity's ECS development effort has gone radio-silent in the last few months. Their latest versions of the Unity Editor (2021.1+) are no longer compatible with ECS, and Unity's forum reps have not responded to the many game devs left in limbo and begging for info or an update. Something with ECS development is clearly going haywire, and the silence from the Unity people is troubling.

I can't imagine them to just continue DOTS like normal after going silent for so long. If they don't axe it, then they may choose to do something drastically different than before, like automatic ECS conversion under the hood. ECS is really good for things that scale. Architecturally, it has both pros and cons to OOP. After working with ECS for a few years, I came to the conclusion that OOP is still the best for beha…

I never understood why they didn't take this approach -- converting under-the-hood "automatically" to their ECS paradigm. The existing data-structures were/are already very similar to their ECS counterparts (though with substantially less boilerplate code); the main "issue" in trying to do an 'automatic conversion', at least that I could foresee, was related to references & non-blittable types. Even then, it seems like you could automatically convert all the data that is a blittable type, and then let the rest work "the old way" (read: sub-optimally, at least insofar as memory access goes -- and ideally/likely with some developer feedback via profiler improvements to demonstrate where [and by roughly how much] any non-blittable type access was actually costing you in performance).

Just my 2c.

I do concur with the above poster, though -- their ECS/DOTS has been basically ignored. At this point there's so, so, so much of the Unity ecosystem that just flat out fails to work beyond some very, very, very small scale that it's just mind-blowing. Want to use their physics, or nav-mesh agents, or even their sprite-rendering systems? Once you get 500-1k of any of those objects into a scene (ie, sprites!!), you've already blown way past your CPU/framerate budget. It's mind-boggling; especially when you can, for example with sprite rendering, run your own mesh with a bunch of quads and absolutely obliterate the performance you get from SpriteRenderers.

Very frustrating & somewhat mind boggling TBH. I'd personally guess the vast majority of indie devs that use Unity are simply using it as a [mesh] rendering pipeline & practicing a "roll our own" approach for almost everything else.

Re: Unity patents ECS

#132
post #86

Earlier quoted context omitted.

Not a patent lawyer here. But I'm unfortunate enough to have several patents to my name, owned by past employers. My impression of everyone that I have ever heard from, or dealt with, involved with patents is that you all are so firmly in regulatory capture that your heads are captured up your collective asses, and the tech industry is being hampered by the resulting legal quagmires. In a sane world, the entire descr…

> In a sane world, the entire description that you gave falls squarely under "generic computers doing generic computer things". That archetype stuff is so out of the norm that it took me a long time to grok how to work with it in Unity. It's most certainly not "generic computers doing generic computer things" and I've never seen it elsewhere, so I'd guess it would be quite defensible in court especially now that they…

I thought archetype-based ECS was the standard way to implement an ECS. Typically using bitsets or something to define an archetype.

But I may just not be understanding what an archetype represents exactly. My only real experience with ECS, besides implementing a crude one around 2011 for fun, is EnTT, which specifically advertises itself as not being archetype-based as one of its key differentiators.

Its likely I just don't quite understand archetypes though.

Re: Unity patents ECS

#133
post #86

Earlier quoted context omitted.

Not a patent lawyer here. But I'm unfortunate enough to have several patents to my name, owned by past employers. My impression of everyone that I have ever heard from, or dealt with, involved with patents is that you all are so firmly in regulatory capture that your heads are captured up your collective asses, and the tech industry is being hampered by the resulting legal quagmires. In a sane world, the entire descr…

> In a sane world, the entire description that you gave falls squarely under "generic computers doing generic computer things". That archetype stuff is so out of the norm that it took me a long time to grok how to work with it in Unity. It's most certainly not "generic computers doing generic computer things" and I've never seen it elsewhere, so I'd guess it would be quite defensible in court especially now that they…

[deleted]

Re: Unity patents ECS

#134

Earlier quoted context omitted.

> In a sane world, the entire description that you gave falls squarely under "generic computers doing generic computer things". That archetype stuff is so out of the norm that it took me a long time to grok how to work with it in Unity. It's most certainly not "generic computers doing generic computer things" and I've never seen it elsewhere, so I'd guess it would be quite defensible in court especially now that they…

ECS is bog standard in a lot of smaller game engines. It’s not new, I first worked with it ~2010 while hacking some Flash stuff together, and I use it frequently when I hack together games in other engines. I’m really baffled by how Unity would be able to patent this.

A lot of us - possibly yourself included - were exposed to ~ECS by this 2007 article: http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy...

Archetypes are a conceptually simple implementation optimization (group similarly-populated objects) not unique to ECSes - e.g. v8 organizes javascript objects based on their "shape" (again, grouping similarly-populated objects, based on their "properties" instead of their "components") (2017 article: https://v8.dev/blog/fast-properties .)

You can add all kinds of automagic parallelizing and filtering libraries (which I imagine have some overlap with database query optimization and scheduling in their fundamentals), but the basics are incredibly trivial - to the point where you might re-invent it by accident without knowing it has a name.

Re: Unity patents ECS

#135

Patent agent here. At Google we investigated patents and their possible invalidity almost every day. Claim language is obtuse because it's for lawyers, not laymen. An engineer can write the description, but only the lawyer can write the claims. It's immensely complicated, but if Unity does someday assert this patent against someone else, then you all are helping the defendant when they have to defend themselves. At l…

> The cost figure I recall is $500,000; maybe it's different now. That's the standard tactical defence fee? I would guess that kind of money is very far above the means of most open-source developer defendants. And wouldn't a larger, closed-source business rationally choose to pay Unity (say) $400,000 extortion fee instead of taking it to court with the associated uncertainty?

That's not court; that's an IPR [1]. In court you have a jury of ordinary citizens; in an IPR you have experienced patent people.

As for defense strategy: you're right, but Unity might want a quick hit. They don't want a lengthy proceeding where they might lose.

[1] https://www.uspto.gov/patents/ptab/trials/inter-partes-revie...

Re: Unity patents ECS

#136

Patent agent here. At Google we investigated patents and their possible invalidity almost every day. Claim language is obtuse because it's for lawyers, not laymen. An engineer can write the description, but only the lawyer can write the claims. It's immensely complicated, but if Unity does someday assert this patent against someone else, then you all are helping the defendant when they have to defend themselves. At l…

> An engineer can write the description, but only the lawyer can write the claims. If anyone needs a one-sentence rationale why the entire concept of a software patent should be invalid, here it is.

The same is true of any patent, even the hardware patent in Flash of Genius [1]

[1] https://www.imdb.com/title/tt1054588/?ref_=nv_sr_srsg_0

Re: Unity patents ECS

#137
It's indeed really surprising to see them _patenting ECS_. Unity's ECS is a lot about cache-friendliness, not just simple entity-compoenent-system, though.

Re: Unity patents ECS

#138
Apple's GameplayKit also includes an ECS system. Not a patent lawyer, so not sure how broad or not this particular claim is. But that was introduced back in 2015 or 2016, so there's prior art there.

Re: Unity patents ECS

#139

Ironically, Unity's ECS development effort has gone radio-silent in the last few months. Their latest versions of the Unity Editor (2021.1+) are no longer compatible with ECS, and Unity's forum reps have not responded to the many game devs left in limbo and begging for info or an update. Something with ECS development is clearly going haywire, and the silence from the Unity people is troubling.

I know what ECS is and why it's needed for some games. But for a large group of game developers that transition was simply too overwhelming I think. Not just the nomenclature: ECS, DOTS, Burst Compiler, SRP/HDRP/LWRP/URP.... It's an endless list of confusing terms... But moreover those concepts are not so easy to grasp and to use in code by just looking at a few examples. After doing lots of small 'experiments' in Un…

The only problem with Godot is the 3D engine is nowhere near as good as Unity or Unreal . Godot 4 is a lot closer but given Godot’s history , it will take years to arrive . With all of this said , I am rooting for Godot . Long term , an open source game engine will be better .

Re: Unity patents ECS

#140
post #100

Earlier quoted context omitted.

It's not relevant. Unity is claiming an automated system for determining an optimal memory layout as entities with new combinations of components are generated (at runtime). Such a layout defined in advance would not infringe.

> Unity is claiming an automated system for determining an optimal memory layout as entities with new combinations of components are generated So they've patented a database server, basically.

Can you name a database that performs such a function? There might very well be one, but I'm not aware.

I'm most familiar with relational databases and the way in which their data is stored is generally dictated by the schema.

At a minimum, to be consistent with this patent we'd be talking about a database that accepts arbitrary groupings of predefined sets of fields, which then on-the-fly determines how best to pack these individual sets together with other sets belonging to other groupings. The fact that we are talking about two types of collections (one nested in the other) is key -- that is, the nesting of fields within the sets ("components" in ECS terminology), and the nesting of these sets within the groupings ("entities" in ECS terminology).

Post reply on HN