{"id":101271,"date":"2019-10-04T12:52:33","date_gmt":"2019-10-04T12:52:33","guid":{"rendered":"http:\/\/gamefromscratch.com\/post.aspx?id=03fe44bb-e4f6-43f4-89c3-2379cef3b005"},"modified":"2019-10-04T12:52:33","modified_gmt":"2019-10-04T12:52:33","slug":"ecsy-entity-component-system-created-by-mozilla","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2019\/10\/04\/ecsy-entity-component-system-created-by-mozilla\/","title":{"rendered":"ECSY Entity Component System Created By Mozilla"},"content":{"rendered":"<p>The group at Mozilla behind the <a href=\"https:\/\/www.youtube.com\/watch?v=w5WQK_CaU3o\">A-Frame Mixed Reality project<\/a> just released ECSY, an experimental engine and framework agnostic entity component system written in JavaScript.<\/p>\n<p>ECSY features include:<\/p>\n<blockquote>\n<ul>\n<li>Framework agnostic <\/li>\n<li>Focused on providing a simple but yet efficient API <\/li>\n<li>Designed to avoid garbage collection as possible <\/li>\n<li>Systems, entities and components are scoped in a <code>world<\/code> instance <\/li>\n<li>Multiple queries per system <\/li>\n<li>Reactive support:\n<ul>\n<li>Support for reactive behaviour on systems (React to changes on entities and components) <\/li>\n<li>System can query mutable or immutable components <\/li>\n<\/ul>\n<\/li>\n<li>Predictable:\n<ul>\n<li>Systems will run on the order they were registered or based on the priority defined when registering them <\/li>\n<li>Reactive events will not generate a random callback when emited but queued and be processed in order <\/li>\n<\/ul>\n<\/li>\n<li>Modern Javascript: ES6, classes, modules,&#8230; <\/li>\n<li>Pool for components and entities <\/li>\n<\/ul>\n<\/blockquote>\n<p>ECSY is open source and MIT licensed with the source code <a href=\"https:\/\/github.com\/MozillaReality\/ecsy\">available on GitHub<\/a>.&nbsp; It is well documented and contains several examples included examples for BabylonJS (<a href=\"https:\/\/www.gamefromscratch.com\/page\/BabylonJS-Tutorial-Series.aspx\">tutorial here<\/a>) and Three.js (<a href=\"https:\/\/www.gamefromscratch.com\/post\/2014\/07\/15\/Playing-around-with-ThreeJS-Part-One.aspx\">tutorial here<\/a>).&nbsp; The ECSY homepage is <a href=\"https:\/\/ecsy.io\/\">available here<\/a>.&nbsp; You can learn more about ECSY, including future plans by reading the announcement blog <a href=\"https:\/\/blog.mozvr.com\/introducing-ecsy\/\">available here<\/a> or by watching the <a href=\"https:\/\/www.youtube.com\/watch?v=zVF4giVyp08\">video<\/a> below.<\/p>\n<p align=\"center\">[youtube https:\/\/www.youtube.com\/watch?v=zVF4giVyp08&#038;w=853&#038;h=480]<\/p>\n<p class=\"under\"> <span class=\"categories\"><a href=\"https:\/\/www.gamefromscratch.com\/category\/GameDev-News.aspx\">GameDev News<\/a><\/span> <span class=\"tags\"><a href=\"https:\/\/www.gamefromscratch.com\/?tag=\/JavaScript\" rel=\"tag\">JavaScript<\/a> <a href=\"https:\/\/www.gamefromscratch.com\/?tag=\/HTML5\" rel=\"tag\">HTML5<\/a><\/span> <\/p>\n<hr>\n","protected":false},"excerpt":{"rendered":"<p>The group at Mozilla behind the A-Frame Mixed Reality project just released ECSY, an experimental engine and framework agnostic entity component system written in JavaScript. ECSY features include: Framework agnostic Focused on providing a simple but yet efficient API Designed to avoid garbage collection as possible Systems, entities and components are scoped in a world [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71],"tags":[72],"class_list":["post-101271","post","type-post","status-publish","format-standard","hentry","category-game-development","tag-gamedev-news"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/101271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=101271"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/101271\/revisions"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=101271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=101271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=101271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}