9 ms·
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
by hackthefender 5y ago
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 patent. And on unpatentable subject matter (i.e., being an abstract idea), there is a pretty good argument that this improves the functionality of the computer, not just uses a computer to do something known, which recent cases have started using as the de facto dividing line.
1. A system comprising:
one or more computer processors;
one or more computer memories;
a set of instructions incorporated into the one or more computer memories, the set of instructions configuring the one or more computer processors to perform operations for automatically managing a set of memory chunks within the one or more computer memories at runtime for a computer application, the operations comprising:
receiving a set of entities from the computer application, each of the set of entities including a set of components, wherein each component of the set of components has one type of a set of types;
classifying the set of entities into a set of archetypes, each archetype representing a different count of the set of components or a different combination of types of the set of components relative to other archetypes of the set of archetypes;
based on a determination that one of the set of archetypes corresponds to a new archetype, building a new memory chunk, adding the new memory chunk to the set of memory chunks, and populating the new memory chunk, wherein the populating of the new memory chunk includes adding data from the set of components included in one or more entities of the set of entities that are classified under the new archetype, the adding of the data including contiguously adding the data to ends of a set of component data arrays included in the new memory chunk, each of the set of data arrays included in the new memory chunk corresponding to a respective component of the set of components included in the one or more entities that are classified under the new archetype.
- kortex 5y ago> And on unpatentable subject matter (i.e., being an abstract idea), there is a pretty good argument that this improves the functionality of the computer, not just uses a computer to do something known That's not really what is getting folks riled up with respect to patentability. The techniques mentioned (as interpreted by some) are considered not at all novel, being widely known in the prior art. That's my take. I haven't dug too deep. Update after briefly reading the patent. I like to read claims backwards, because they almost always build upon each other, with Claim 1 basically claiming the broad domain, and each subsequent claim narrowing the scope. Claims are "subtractive" - each has to match, unless you specifically call out sub-claims (e.g. "8. claim 7, but also ABC; 9. claim 7, but also DEF"). Here's a plaintext link for those following along: https://patents.justia.com/patent/10599560 https://patents.justia.com/patent/10599560 Claims 17 and 20 are the real kickers. > The method of claim 10, the operations further comprising: > determining that an entity of the set of entities within a first archetype has been modified; > based on a determination that the modified entity corresponds to an additional new archetype, adding the additional new archetype to the set of archetypes, building an additional new memory chunk for the additional new archetype, populating the additional new memory chunk with data from the set of components included in the modified entity, and deleting data corresponding to the modified entity from the first archetype; > based on a determination that the modified entity corresponds to an existing second archetype in an existing memory chunk, populating the existing memory chunk with data from the set of components included in the modified entity, and deleting data corresponding to the modified entity from the first archetype. Woof. That's really dense, but it sounds like it's basically describing inheritance based on composition. To update an archetype and all entities of that archetype, create a new archetype in memory, move some pointers, and you're done. No reallocation beyond that updated archetype node. > 20.20. The non-transitory machine-readable medium of claim 19, wherein each component data array of the set of component data arrays is contiguous with a next component data array of the set of component data arrays. So this isn't just about ECS, this isn't about archetype ECS, or even OOP-based archetype ECS. This is specifically about an OOP-based archetype ECS using some fancy memory layout method, which lays out contiguous chunks in such a way that modifying archetypes doesn't result in large reallocations. I think. It's super dense. Even with all that added specificity, I still think it falls short of clearing the bar of novelty beyond prior art. This is such a performance-relevant part of game engines that leverage ECS, that somebody out there has to have already thought of ways to improve the memory management of entities.
- zoobab 5y agoInvalid under Alice. We don't care about the "prior art" filter, because the patentability filter already failed.
- kortex 5y agoWhere does the patentability filter fail? By "clearing the bar of novelty beyond prior art" I am referring to both novelty and non-obviousness. You seem to be implying, by referencing what I can only assume is the Alice Corp case, is that the patent is too abstract. I don't think that's the case. The patent describes a very specific technique for memory management and archetype based inheritance. I think the technique would be patentable were it an inventive step above the prior art, but it's not novel enough, IMHO, IANAL, BBQ. https://en.wikipedia.org/wiki/Alice_Corp._v._CLS_Bank_International https://en.wikipedia.org/wiki/Alice_Corp._v._CLS_Bank_Intern...
- phkahler 5y ago>> Even with all that added specificity, I still think it falls short of clearing the bar of novelty beyond prior art. This is such a performance-relevant part of game engines that leverage ECS, that somebody out there has to have already thought of ways to improve the memory management of entities. I think it's more specific than a combination of ECS and memory allocation strategy. Since ECS allows dynamic building of "types" or "classes" of objects, this seems to be automatically detecting new types and allocating memory for them separately. Maybe? So go ahead and ECS all you want, and go ahead and use spiffy memory management all you want, but don't tie type inference into your memory allocator. IANAL but that seems to be the ostensibly unique part.
- jjoonathan 5y agoWait just one second... they managed to actually get a completely generic description of ECS into the claims? EDIT: yes, yes they did. What you see above is in fact clam 1, in it's entirety. This is worse than usual. Usually "X patents (common thing)" headlines actually mean "X patents (common thing with weird twist)," which is a great deal less severe. This really looks like Unity got an actual patent on the actual ECS design pattern, the one that every game has used for the past 40 years. They will be able to extort an awful lot of money with this patent before it gets overturned.
- shock-value 5y agoNot really. To me the novelty in the first claim is that they have a system which automatically determines an optimal memory layout, even in the face of new combinations of components within a newly created entity. A typical hand-crafted ECS system wouldn't likely infringe -- it's more likely that the memory layout was defined in advance. I guess this will be a major roadblock to Unreal Engine offering such an automated ECS system, which is a real shame. There are certain types of games which do need ECS to make viable use of computing resources (simulations, etc). You don't see many of those on Unreal now and I guess you won't for the foreseeable future if this patent holds.
- letsInvalid 5y agoNothing about this write up says they invented a memory allocation system Regardless I’ve built ECS engines prior to their filing. I’ll submit examples of my code calling malloc() when it realizes it doesn’t have enough memory for the new entity
- Rd6n6 5y agoSeveral already existing unreal games already use ecs. I saw a tech talk about Conan exiles for example. It’s just not part of the engine. Can’t find the talk, it was an epic event, but they advertise it in job postings https://jobs.funcom.com/jobs/975839-gameplay-programmer https://jobs.funcom.com/jobs/975839-gameplay-programmer Edit: the video https://youtu.be/QlKXPBFh5BM https://youtu.be/QlKXPBFh5BM
- 5y ago
- cosmotic 5y agoAs a patent lawyer, can you explain what that claim means? Why does it seem intentionally confusing?
- bcrosby95 5y ago> Why does it seem intentionally confusing? Because "group entities together in memory by which components they have" isn't patent worthy.
- tinco 5y agoExcept that it might be, because if people knew how to do it, they would have for the past 20 years that ECS have been implemented in the games industry that is notoriously focused on memory locality optimisation. (not that I'm advocating for the patentability of software in general, I just think that if software should be patentable, this sure seems like something that could be)
- deleted 5y ago[deleted]
- not2b 5y agoThere is a strange rule that each claim in a patent must be one sentence. So they construct these massive run-on sentences.
- cosmotic 5y agoIt's not just the run-on, it's also the pointlessly verbose descriptions using words that aren't used in the industry nor common English
- nextaccountic 5y agoIt'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: 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? Because, there are Rust ECS libraries that use archetypes, like for example legion https://crates.io/crates/legion/0.1.0 https://crates.io/crates/legion/0.1.0 - that had its first release on 9 march 2019. And even at this date, the concept of using archetypes to optimize the memory layout of ECS applications is not novel. More about this here https://csherratt.github.io/blog/posts/specs-and-legion/ https://csherratt.github.io/blog/posts/specs-and-legion/ I would say that the google v8's Javascript optimization, where they create a new struct layout for each possible combination of object fields, might as well count as prior art. It doesn't use ECS though: but I don't think that prior art needs to check all technology boxes. I argue that, in light of v8's trick to turn objects with dynamic fields (traditionally stored as a hash table) into objects with statically known fields, then ECS archetypes are not novel enough for a patent. (And I don't even know if the v8 optimization is itself novel)
- jcranmer 5y ago> 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.
- nextaccountic 5y agoThis 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)
- deleted 5y ago[deleted]
- Rd6n6 5y agoIsn’t there a ton of prior art? I’ve seen tech talks about ecs implementations for years. From the top of my head, here’s a great tech talk about overwatch. https://youtu.be/W3aieHjyNvw https://youtu.be/W3aieHjyNvw Here’s a tech talk by Bob Nystrom (the game programming patterns guy) that mentions ecs from years ago https://youtu.be/JxI3Eu5DPwE https://youtu.be/JxI3Eu5DPwE Edit: letsInvalid in another thread above linked to an article from 2013: https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/implementing-component-entity-systems-r3382/ https://www.gamedev.net/tutorials/programming/general-and-ga...
- btilly 5y agoNot 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 description that you gave falls squarely under "generic computers doing generic computer things". And therefore by Alice v. CLS Bank as decided by the Supreme Court, it should not be patentable. Period. Unfortunately the United States Court of Appeals for the Federal Circuit has gone rogue, and you're almost certainly correct that they will happily grant use of the patent to any patent troll lucky enough to get it. And the Patent Office is so firmly in the land of regulatory capture that bad patents like this have no trouble being issued. And the result is that people whose work ACTUALLY achieves "Progress of Science and useful Arts" is hampered by this crazy system. And our patent system continues to undermine its stated Constitutional purpose.
- sombremesa 5y ago> 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 have a patent. Not sure what you're on about, but if it's a valid concern I'd pick a better example than this specific piece of tech (granted that one tiny snippet from the patent might not portray what the tech is or how it's unique). Edit: seems like there is some confusion here about ECS and how archetypes are implemented in DOTS. ECS and archetypes are not synonymous, so I’m not sure what to tell you when you claim they are. But I’m also not sure how downvoting me is helping here. I guess community consensus is that archetypes and ECS are the same thing, in which case Unity will have an uphill battle ahead.
- puddingforears 5y agoECS 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.
- nixpulvis 5y agoWhat the hell did I just read? Sounds like Java to me.
- randmeerkat 5y agoWhat motivated you to become a patent lawyer? Do you like it? What was the process like?
- anothernewdude 5y agoPatents no longer fulfill the reason they were created, and exist only to fill the pockets of big businesses and the lawyers they employ. Patents do nothing to advance science or technology, and everything to prevent new invention.
- deleted 5y ago[deleted]