Live data from Hacker News

Unity patents ECS

pdfpiw.uspto.gov

31–40 of 175 posts

Re: Unity patents ECS

#33
post #26

Earlier quoted context omitted.

What the patent actually covers is governed by the claims at the very end of the patent, and most of the rest of the document is generally irrelevant, per my very limited understanding of how patents work. That said, I've reread claim 1 a couple of times and I have no clue what it is actually claiming.

> and most of the rest of the document is generally irrelevant INAL but this is incorrect. The rest of the document is mostly the disclosure and - critically - claims cannot rely on anything not disclosed. Importantly during the review process you can edit or amend your claims, but you can't update the disclosure without changing precedent date.

I should have been somewhat more precise with my wording. The document is generally irrelevant for the purposes of deciding whether or not your product potentially infringes the patent. It's not until after processing the claims, or perhaps during if you're unclear about terminology or meaning, that you start considering the rest of the document.

Re: Unity patents ECS

#34

Patent lawyer here. There is a lot of dubious stuff already in this thread, so be careful with legal opinions from people on the internet. Some relevant claim language is below. Of course a lot of this stuff has been known for a while, but you have to have everything together--or an evidenced argument that combining things in this way would have been obvious--before you can conclude anything about the validity of the…

It's aggravating that parents are purposefully written in a language that makes it harder to read. What I could gather from it is that this is just an implementation of archetype-based ECS. Which just means that entities with the same set of components (that is, the same "archetype") are allocated together. But I don't know whether they are patenting archetypes in general or just a narrow usage. Now I have a question…

> Now I have a question: is it possible that things published before the date of the patent (24 march 2020) are infringing on the patent? Or, on the contrary, things published before this date can actually be prior art?

You have to look at the date of filing, not date of publication. The date of filing is June 12, 2018 (patents take a few years to issue these days). So March 9, 2019 cannot be prior art.

Re: Unity patents ECS

#35

How does such an abstract idea get approval? Like Figure 4B. It's a diagram that basically says, if something happens and we need a new entity we create one... Figure 4A is literally talking about adding to an array. Figure 1 is just a diagram of a computer? The abstract is just garbage collection...

What the patent actually covers is governed by the claims at the very end of the patent, and most of the rest of the document is generally irrelevant, per my very limited understanding of how patents work. That said, I've reread claim 1 a couple of times and I have no clue what it is actually claiming.

It appears to describe a data-oriented component entity system in which all data types within a component are assigned to chunks (batches) in such a way that they can be optimally grouped with data from components of other entities for optimal memory access.

Re: Unity patents ECS

#36

How does such an abstract idea get approval? Like Figure 4B. It's a diagram that basically says, if something happens and we need a new entity we create one... Figure 4A is literally talking about adding to an array. Figure 1 is just a diagram of a computer? The abstract is just garbage collection...

What the patent actually covers is governed by the claims at the very end of the patent, and most of the rest of the document is generally irrelevant, per my very limited understanding of how patents work. That said, I've reread claim 1 a couple of times and I have no clue what it is actually claiming.

My read (and from what I know of ECS) is that it's basically claiming a system which automatically organizes the memory layouts of instances of different types of "entities" (i.e. "type" meaning which "components" it includes) in an efficient manner.

Here, an "entity" is just an object identifier (integer, or whatever). A "component" is a specific set of data relevant to some function (e.g. position component would have x, y, z floats, while damage level component might be a single float to represent amount of damage).

ECS generally means laying out all memory for all instances of a given component contiguously, so in the example I gave you'd have one array for all position components in your game world, and one array for all damage level components. The "entities" are just collections of these components from these different arrays. So the "player" entity for example is logically composed of one particular element of the position array and one particular element of the damage array. This is more cache friendly when you have a "system" (say, the physics subsystem) which generally only operates on one or a limited set of types of components across many entities.

There is no way ECS in general is patentable but their system which intelligently and automatically performs the memory layouting for their form of ECS (which also includes the notion of chunking these arrays into finite sized blocks) very well might be.

Re: Unity patents ECS

#38
post #26

Earlier quoted context omitted.

> and most of the rest of the document is generally irrelevant INAL but this is incorrect. The rest of the document is mostly the disclosure and - critically - claims cannot rely on anything not disclosed. Importantly during the review process you can edit or amend your claims, but you can't update the disclosure without changing precedent date.

I should have been somewhat more precise with my wording. The document is generally irrelevant for the purposes of deciding whether or not your product potentially infringes the patent. It's not until after processing the claims, or perhaps during if you're unclear about terminology or meaning, that you start considering the rest of the document.

Seems I misinterpreted your comment.

Re: Unity patents ECS

#39
post #28

Earlier quoted context omitted.

What the patent actually covers is governed by the claims at the very end of the patent, and most of the rest of the document is generally irrelevant, per my very limited understanding of how patents work. That said, I've reread claim 1 a couple of times and I have no clue what it is actually claiming.

> What the patent actually covers is governed by the claims at the very end of the patent, and most of the rest of the document is generally irrelevant, per my very limited understanding of how patents work. Correct. Only the contents of the Claims system matters to what is actually patented. Also, claims are subtractive/intersection, like all bullets have an AND function applied. So if you have a widget and it match…

> So if you have a widget and it matches claim 1-8 but does not match claim 9, it does not match.

This is not correct. If you infringe claim 1 then you infringe claim 1. Whether or not you also infringe claim 9 doesn't matter.

Assuming Claim 9 is dependent on claim 1, claim 9 includes all the limitations of claim 1. So claim 1 is A+B+C.... Claim 9 is 1 + D = A+B+C+D. So if you infringe 9 because you have A+B+C+D then you also, by definition, infringe claim 1 because you have A+B+C.

Also, you can write a claim that has ORs applied. But the drafter has to be really careful with how it is done and it is not the norm.

Re: Unity patents ECS

#40

Earlier quoted context omitted.

It's aggravating that parents are purposefully written in a language that makes it harder to read. What I could gather from it is that this is just an implementation of archetype-based ECS. Which just means that entities with the same set of components (that is, the same "archetype") are allocated together. But I don't know whether they are patenting archetypes in general or just a narrow usage. Now I have a question…

> Now I have a question: is it possible that things published before the date of the patent (24 march 2020) are infringing on the patent? Or, on the contrary, things published before this date can actually be prior art? You have to look at the date of filing, not date of publication. The date of filing is June 12, 2018 (patents take a few years to issue these days). So March 9, 2019 cannot be prior art.

This is very very concerning. Not only Amethyst's legion is archetype based, but also Bevy's ECS. So the Rust gamedev ecosystem is somewhat tainted (depending on the specifics on the patent and the source code of those frameworks, but I think that even reading the patent is risky - or at least I was told that, because if you know about the contents of the patent, infringing it is worse)
Post reply on HN