3D Asset Store Propsplanet upgrades from Unity to PlayCanvas | PlayCanvas Blog
-
+
diff --git a/404.html b/404.html
index 90097cb0d..317a264d8 100644
--- a/404.html
+++ b/404.html
@@ -5,7 +5,7 @@
Page Not Found | PlayCanvas Blog
-
+
diff --git a/a-faster-supersplat-with-pwa-support/index.html b/a-faster-supersplat-with-pwa-support/index.html
index 54e3cce0e..897fc963e 100644
--- a/a-faster-supersplat-with-pwa-support/index.html
+++ b/a-faster-supersplat-with-pwa-support/index.html
@@ -5,7 +5,7 @@
A Faster SuperSplat with PWA Support | PlayCanvas Blog
-
+
diff --git a/a-graph-rendering-library-for-the-web-pcui-graph/index.html b/a-graph-rendering-library-for-the-web-pcui-graph/index.html
index 8d819190b..711671490 100644
--- a/a-graph-rendering-library-for-the-web-pcui-graph/index.html
+++ b/a-graph-rendering-library-for-the-web-pcui-graph/index.html
@@ -5,7 +5,7 @@
A Graph Rendering Library for the Web: PCUI Graph | PlayCanvas Blog
-
+
diff --git a/a-multiplayer-3rd-person-shooter-in-html5/index.html b/a-multiplayer-3rd-person-shooter-in-html5/index.html
index 26d86628d..91f8130e6 100644
--- a/a-multiplayer-3rd-person-shooter-in-html5/index.html
+++ b/a-multiplayer-3rd-person-shooter-in-html5/index.html
@@ -5,7 +5,7 @@
Making a multiplayer 3rd-person shooter in HTML5 | PlayCanvas Blog
-
+
diff --git a/a-new-ui-for-the-playcanvas-editor/index.html b/a-new-ui-for-the-playcanvas-editor/index.html
index bb7c7e45f..2be1f69b3 100644
--- a/a-new-ui-for-the-playcanvas-editor/index.html
+++ b/a-new-ui-for-the-playcanvas-editor/index.html
@@ -5,7 +5,7 @@
A New UI for the PlayCanvas Editor | PlayCanvas Blog
-
+
diff --git a/a-wild-designer-appears/index.html b/a-wild-designer-appears/index.html
index edbba18ee..2d61ad890 100644
--- a/a-wild-designer-appears/index.html
+++ b/a-wild-designer-appears/index.html
@@ -5,7 +5,7 @@
A wild designer appears! | PlayCanvas Blog
-
+
diff --git a/a-wild-programmer-appears/index.html b/a-wild-programmer-appears/index.html
index 9e1e9d77b..89d90d345 100644
--- a/a-wild-programmer-appears/index.html
+++ b/a-wild-programmer-appears/index.html
@@ -5,7 +5,7 @@
A wild programmer appears! | PlayCanvas Blog
-
+
diff --git a/anim-layer-masks-and-blending/index.html b/anim-layer-masks-and-blending/index.html
index 093f74ae0..54f0f253e 100644
--- a/anim-layer-masks-and-blending/index.html
+++ b/anim-layer-masks-and-blending/index.html
@@ -5,7 +5,7 @@
Anim Layer Masks and Blending | PlayCanvas Blog
-
+
diff --git a/announcing-playcanvas-answers/index.html b/announcing-playcanvas-answers/index.html
index 27b959931..dc42404d6 100644
--- a/announcing-playcanvas-answers/index.html
+++ b/announcing-playcanvas-answers/index.html
@@ -5,7 +5,7 @@
PlayCanvas Community Part 1 - Announcing PlayCanvas Answers | PlayCanvas Blog
-
+
diff --git a/announcing-the-new-playcanvas-asset-store/index.html b/announcing-the-new-playcanvas-asset-store/index.html
index aeb9b83e1..6244ff02e 100644
--- a/announcing-the-new-playcanvas-asset-store/index.html
+++ b/announcing-the-new-playcanvas-asset-store/index.html
@@ -5,7 +5,7 @@
Announcing the New PlayCanvas Asset Store | PlayCanvas Blog
-
+
diff --git a/apple-embraces-webgl/index.html b/apple-embraces-webgl/index.html
index d90191473..83e345c69 100644
--- a/apple-embraces-webgl/index.html
+++ b/apple-embraces-webgl/index.html
@@ -5,7 +5,7 @@
Apple Embraces WebGL | PlayCanvas Blog
-
+
diff --git a/archive/index.html b/archive/index.html
index e412e74eb..2dff43980 100644
--- a/archive/index.html
+++ b/archive/index.html
@@ -5,7 +5,7 @@
Archive | PlayCanvas Blog
-
+
diff --git a/arm-and-playcanvas-open-source-seemore-webgl-demo/index.html b/arm-and-playcanvas-open-source-seemore-webgl-demo/index.html
index c2ae428e1..f1ad63934 100644
--- a/arm-and-playcanvas-open-source-seemore-webgl-demo/index.html
+++ b/arm-and-playcanvas-open-source-seemore-webgl-demo/index.html
@@ -5,7 +5,7 @@
Arm and PlayCanvas Open Source Seemore WebGL Demo | PlayCanvas Blog
-
+
diff --git a/assets/js/0744059c.2637073f.js b/assets/js/0744059c.864aa7ed.js
similarity index 93%
rename from assets/js/0744059c.2637073f.js
rename to assets/js/0744059c.864aa7ed.js
index c0283bc42..af0103141 100644
--- a/assets/js/0744059c.2637073f.js
+++ b/assets/js/0744059c.864aa7ed.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[21225],{7816:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var a=n(22332),s=n(74848),r=n(28453);const o={authors:"christy",slug:"playcanvas-update-211114",title:"PlayCanvas Update 21/11/14"},i=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Features",id:"features",level:3},{value:"New Particle System",id:"new-particle-system",level:4},{value:"Project Pages",id:"project-pages",level:4},{value:"Watching and Starring Projects",id:"watching-and-starring-projects",level:4},{value:"Graphics",id:"graphics",level:3},{value:"Other News",id:"other-news",level:3},{value:"Propsplanet",id:"propsplanet",level:4},{value:"PlayHack",id:"playhack",level:4},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function h(e){const t={a:"a",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"We haven't been keeping up our weekly update as much as we really should and for that we are eternally sorry. However,\xa0from a new particle system beta to the\xa0even newer watching and starring functions this week is no disappointment. Lets go!"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(91758).A+"",children:(0,s.jsx)(t.img,{alt:"PLAYHACK_boxes",src:n(98868).A+"",width:"700",height:"600"})})}),"\n",(0,s.jsx)(t.h3,{id:"features",children:"Features"}),"\n",(0,s.jsx)(t.h4,{id:"new-particle-system",children:"New Particle System"}),"\n",(0,s.jsxs)(t.p,{children:["Our new ",(0,s.jsx)(t.strong,{children:"Particle System"})," is only in beta form but already we're seeing great things created with it. You can join by sending an email to\xa0",(0,s.jsx)(t.a,{href:"mailto:info@playcanvas.com",children:"info@playcanvas.com"}),". We hope to release it to everyone in the next few weeks."]}),"\n",(0,s.jsx)(t.h4,{id:"project-pages",children:"Project Pages"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Project pages"}),"\xa0are now a public overview of your project. You can use the devlog to talk to other PlayCanvas users about your game. Devlogs go into the public feed on the welcome page."]}),"\n",(0,s.jsx)(t.h4,{id:"watching-and-starring-projects",children:"Watching and Starring Projects"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:(0,s.jsx)(t.a,{href:"https://blog.playcanvas.com/watching-and-starring/",children:"You can now Watch or Star PlayCanvas projects!"})})}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Watching"})," a project tells us that you\u2019re interested\xa0updates from this project. Soon we\u2019ll start\xa0customizing your feed with updates from the projects that you\u2019re watching."]}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Starring"})," a project just tells us that you think it\u2019s cool. You won\u2019t receive any more information about it, but you can rest safe in the knowledge\xa0that you\u2019ve given the project\u2019s owner a little boost to their day."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(3719).A+"",children:(0,s.jsx)(t.img,{alt:"Project Stars",src:n(92481).A+"",width:"951",height:"199"})})}),"\n",(0,s.jsx)(t.h3,{id:"graphics",children:"Graphics"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Theres so much new graphics stuff to announce, it gets its own section. Crazy, we know!"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["We have a completely ",(0,s.jsx)(t.strong,{children:"new shader subsystem"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Support for ",(0,s.jsx)(t.strong,{children:"far more lights in a scene"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Point lights can now cast shadows"})," (like spot and directional lights). See cast shadows option in light component UI for point lights."]}),"\n",(0,s.jsxs)(t.li,{children:["We added ",(0,s.jsx)(t.strong,{children:"Fresnel reflection"}),". Currently still a beta feature this is only enable via a script."]}),"\n",(0,s.jsxs)(t.li,{children:["You can now use ",(0,s.jsx)(t.strong,{children:"physically correct falloff"})," mode for point and spot lights. See falloff mode in the light component UI. Current mode is linear, new mode is inverse squared."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Gamma correction"})," is now enabled by default in scenes. For older projects you can turn this on in your scene settings."]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"other-news",children:"Other News"}),"\n",(0,s.jsx)(t.h4,{id:"propsplanet",children:"Propsplanet"}),"\n",(0,s.jsxs)(t.p,{children:["We ",(0,s.jsx)(t.a,{href:"https://blog.playcanvas.com/3d-asset-store-propsplanet-upgrades-from-unity-to-playcanvas/",children:"announced"})," that PlayCanvas is now powering 3D Asset Store\xa0",(0,s.jsx)(t.a,{href:"http://www.propsplanet.com",children:"Propsplanet"}),". Propsplanet is a great place to pick up beautiful game ready assets. Using their 3D preview you'll see exactly what the asset looks like in your game before you buy."]}),"\n",(0,s.jsx)(t.h4,{id:"playhack",children:"PlayHack"}),"\n",(0,s.jsxs)(t.p,{children:["There is little ",(0,s.jsx)(t.strong,{children:"over a week to go till the first PlayHack Game Jam closes"}),", but it's never too late to enter! Find out everything you need to know ",(0,s.jsx)(t.a,{href:"https://blog.playcanvas.com/category/playhack/",children:(0,s.jsx)(t.strong,{children:"here"})}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(t.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(t.li,{children:["Like the\xa0",(0,s.jsx)(t.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(t.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(t.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},91758:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/files/PLAYHACK_boxes-d1d489798142e6bc350c5de6d855b9fe.jpg"},3719:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/files/swooop-dashboard-a52e52c7e61d21ae6caa8b5d9a55d635.jpg"},98868:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/PLAYHACK_boxes-d1d489798142e6bc350c5de6d855b9fe.jpg"},92481:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/swooop-dashboard-a52e52c7e61d21ae6caa8b5d9a55d635.jpg"},28453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>i});var a=n(96540);const s={},r=a.createContext(s);function o(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),a.createElement(r.Provider,{value:t},e.children)}},22332:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-211114","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-11-21-playcanvas-update-211114.md","source":"@site/blog/2014-11-21-playcanvas-update-211114.md","title":"PlayCanvas Update 21/11/14","description":"We haven\'t been keeping up our weekly update as much as we really should and for that we are eternally sorry. However,\xa0from a new particle system beta to the\xa0even newer watching and starring functions this week is no disappointment. Lets go!","date":"2014-11-21T00:00:00.000Z","tags":[],"readingTime":2.21,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-211114","title":"PlayCanvas Update 21/11/14"},"unlisted":false,"prevItem":{"title":"PLAYHACK December: Jolly Santa","permalink":"/playhack-december-jolly-santa"},"nextItem":{"title":"Watching and Starring","permalink":"/watching-and-starring"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[21225],{7816:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var a=n(22332),s=n(74848),r=n(28453);const o={authors:"christy",slug:"playcanvas-update-211114",title:"PlayCanvas Update 21/11/14"},i=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Features",id:"features",level:3},{value:"New Particle System",id:"new-particle-system",level:4},{value:"Project Pages",id:"project-pages",level:4},{value:"Watching and Starring Projects",id:"watching-and-starring-projects",level:4},{value:"Graphics",id:"graphics",level:3},{value:"Other News",id:"other-news",level:3},{value:"Propsplanet",id:"propsplanet",level:4},{value:"PlayHack",id:"playhack",level:4},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function h(e){const t={a:"a",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"We haven't been keeping up our weekly update as much as we really should and for that we are eternally sorry. However,\xa0from a new particle system beta to the\xa0even newer watching and starring functions this week is no disappointment. Lets go!"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(91758).A+"",children:(0,s.jsx)(t.img,{alt:"PLAYHACK_boxes",src:n(98868).A+"",width:"700",height:"600"})})}),"\n",(0,s.jsx)(t.h3,{id:"features",children:"Features"}),"\n",(0,s.jsx)(t.h4,{id:"new-particle-system",children:"New Particle System"}),"\n",(0,s.jsxs)(t.p,{children:["Our new ",(0,s.jsx)(t.strong,{children:"Particle System"})," is only in beta form but already we're seeing great things created with it. You can join by sending an email to\xa0",(0,s.jsx)(t.a,{href:"mailto:info@playcanvas.com",children:"info@playcanvas.com"}),". We hope to release it to everyone in the next few weeks."]}),"\n",(0,s.jsx)(t.h4,{id:"project-pages",children:"Project Pages"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Project pages"}),"\xa0are now a public overview of your project. You can use the devlog to talk to other PlayCanvas users about your game. Devlogs go into the public feed on the welcome page."]}),"\n",(0,s.jsx)(t.h4,{id:"watching-and-starring-projects",children:"Watching and Starring Projects"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:(0,s.jsx)(t.a,{href:"https://blog.playcanvas.com/watching-and-starring/",children:"You can now Watch or Star PlayCanvas projects!"})})}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Watching"})," a project tells us that you\u2019re interested\xa0updates from this project. Soon we\u2019ll start\xa0customizing your feed with updates from the projects that you\u2019re watching."]}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Starring"})," a project just tells us that you think it\u2019s cool. You won\u2019t receive any more information about it, but you can rest safe in the knowledge\xa0that you\u2019ve given the project\u2019s owner a little boost to their day."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(3719).A+"",children:(0,s.jsx)(t.img,{alt:"Project Stars",src:n(92481).A+"",width:"951",height:"199"})})}),"\n",(0,s.jsx)(t.h3,{id:"graphics",children:"Graphics"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Theres so much new graphics stuff to announce, it gets its own section. Crazy, we know!"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["We have a completely ",(0,s.jsx)(t.strong,{children:"new shader subsystem"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Support for ",(0,s.jsx)(t.strong,{children:"far more lights in a scene"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Point lights can now cast shadows"})," (like spot and directional lights). See cast shadows option in light component UI for point lights."]}),"\n",(0,s.jsxs)(t.li,{children:["We added ",(0,s.jsx)(t.strong,{children:"Fresnel reflection"}),". Currently still a beta feature this is only enable via a script."]}),"\n",(0,s.jsxs)(t.li,{children:["You can now use ",(0,s.jsx)(t.strong,{children:"physically correct falloff"})," mode for point and spot lights. See falloff mode in the light component UI. Current mode is linear, new mode is inverse squared."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Gamma correction"})," is now enabled by default in scenes. For older projects you can turn this on in your scene settings."]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"other-news",children:"Other News"}),"\n",(0,s.jsx)(t.h4,{id:"propsplanet",children:"Propsplanet"}),"\n",(0,s.jsxs)(t.p,{children:["We ",(0,s.jsx)(t.a,{href:"https://blog.playcanvas.com/3d-asset-store-propsplanet-upgrades-from-unity-to-playcanvas/",children:"announced"})," that PlayCanvas is now powering 3D Asset Store\xa0",(0,s.jsx)(t.a,{href:"http://www.propsplanet.com",children:"Propsplanet"}),". Propsplanet is a great place to pick up beautiful game ready assets. Using their 3D preview you'll see exactly what the asset looks like in your game before you buy."]}),"\n",(0,s.jsx)(t.h4,{id:"playhack",children:"PlayHack"}),"\n",(0,s.jsxs)(t.p,{children:["There is little ",(0,s.jsx)(t.strong,{children:"over a week to go till the first PlayHack Game Jam closes"}),", but it's never too late to enter! Find out everything you need to know ",(0,s.jsx)(t.a,{href:"https://blog.playcanvas.com/category/playhack/",children:(0,s.jsx)(t.strong,{children:"here"})}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(t.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(t.li,{children:["Like the\xa0",(0,s.jsx)(t.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(t.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(t.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},91758:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/files/PLAYHACK_boxes-d1d489798142e6bc350c5de6d855b9fe.jpg"},3719:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/files/swooop-dashboard-a52e52c7e61d21ae6caa8b5d9a55d635.jpg"},98868:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/PLAYHACK_boxes-d1d489798142e6bc350c5de6d855b9fe.jpg"},92481:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/swooop-dashboard-a52e52c7e61d21ae6caa8b5d9a55d635.jpg"},28453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>i});var a=n(96540);const s={},r=a.createContext(s);function o(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),a.createElement(r.Provider,{value:t},e.children)}},22332:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-211114","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-11-21-playcanvas-update-211114.md","source":"@site/blog/2014-11-21-playcanvas-update-211114.md","title":"PlayCanvas Update 21/11/14","description":"We haven\'t been keeping up our weekly update as much as we really should and for that we are eternally sorry. However,\xa0from a new particle system beta to the\xa0even newer watching and starring functions this week is no disappointment. Lets go!","date":"2014-11-21T00:00:00.000Z","tags":[],"readingTime":2.21,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-211114","title":"PlayCanvas Update 21/11/14"},"unlisted":false,"prevItem":{"title":"PLAYHACK December: Jolly Santa","permalink":"/playhack-december-jolly-santa"},"nextItem":{"title":"Watching and Starring","permalink":"/watching-and-starring"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/09733303.1ed3a5e9.js b/assets/js/09733303.4492e338.js
similarity index 62%
rename from assets/js/09733303.1ed3a5e9.js
rename to assets/js/09733303.4492e338.js
index 21345f34e..8f85034c7 100644
--- a/assets/js/09733303.1ed3a5e9.js
+++ b/assets/js/09733303.4492e338.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[6941],{29558:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>n,toc:()=>c});var n=a(63376),r=a(74848),o=a(28453);const s={authors:"christy",slug:"playcanvas-in-2014-a-year-in-review",title:"PlayCanvas in 2014: A Year In Review"},i=void 0,l={authorsImageUrls:[void 0]},c=[];function h(e){const t={p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"In 2011, PlayCanvas started its journey as the world's first cloud-hosted game development platform, and over three years later we\u2019re still giving you the next generation toolset to build, share and play video games."})}),"\n",(0,r.jsx)(t.p,{children:"In 2014 our community has grown from roughly 2,000 to over 20,000 users and there has been over 2,000,000 views of PlayCanvas projects. There really has never been a better time to join us! So without further ado, here\u2019s a look back at PlayCanvas and the Games industry in 2014 and glance ahead into the new year."})]})}function p(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},28453:(e,t,a)=>{a.d(t,{R:()=>s,x:()=>i});var n=a(96540);const r={},o=n.createContext(r);function s(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),n.createElement(o.Provider,{value:t},e.children)}},63376:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-in-2014-a-year-in-review","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-12-22-playcanvas-in-2014-a-year-in-review.md","source":"@site/blog/2014-12-22-playcanvas-in-2014-a-year-in-review.md","title":"PlayCanvas in 2014: A Year In Review","description":"In 2011, PlayCanvas started its journey as the world\'s first cloud-hosted game development platform, and over three years later we\u2019re still giving you the next generation toolset to build, share and play video games.","date":"2014-12-22T00:00:00.000Z","tags":[],"readingTime":4.04,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-in-2014-a-year-in-review","title":"PlayCanvas in 2014: A Year In Review"},"unlisted":false,"prevItem":{"title":"PLAYHACK - We challenge you to a jewel!","permalink":"/playhack-we-challenge-you-to-a-jewel"},"nextItem":{"title":"PLAYHACK December - Collecting Presents","permalink":"/playhack-december-collecting-presents"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[6941],{29558:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var a=n(63376),r=n(74848),o=n(28453);const s={authors:"christy",slug:"playcanvas-in-2014-a-year-in-review",title:"PlayCanvas in 2014: A Year In Review"},i=void 0,l={authorsImageUrls:[void 0]},c=[];function h(e){const t={p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"In 2011, PlayCanvas started its journey as the world's first cloud-hosted game development platform, and over three years later we\u2019re still giving you the next generation toolset to build, share and play video games."})}),"\n",(0,r.jsx)(t.p,{children:"In 2014 our community has grown from roughly 2,000 to over 20,000 users and there has been over 2,000,000 views of PlayCanvas projects. There really has never been a better time to join us! So without further ado, here\u2019s a look back at PlayCanvas and the Games industry in 2014 and glance ahead into the new year."})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},28453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>i});var a=n(96540);const r={},o=a.createContext(r);function s(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),a.createElement(o.Provider,{value:t},e.children)}},63376:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-in-2014-a-year-in-review","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-12-22-playcanvas-in-2014-a-year-in-review.md","source":"@site/blog/2014-12-22-playcanvas-in-2014-a-year-in-review.md","title":"PlayCanvas in 2014: A Year In Review","description":"In 2011, PlayCanvas started its journey as the world\'s first cloud-hosted game development platform, and over three years later we\u2019re still giving you the next generation toolset to build, share and play video games.","date":"2014-12-22T00:00:00.000Z","tags":[],"readingTime":4.04,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-in-2014-a-year-in-review","title":"PlayCanvas in 2014: A Year In Review"},"unlisted":false,"prevItem":{"title":"PLAYHACK - We challenge you to a jewel!","permalink":"/playhack-we-challenge-you-to-a-jewel"},"nextItem":{"title":"PLAYHACK December - Collecting Presents","permalink":"/playhack-december-collecting-presents"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/0a138d3a.0a61f353.js b/assets/js/0a138d3a.7a968efa.js
similarity index 69%
rename from assets/js/0a138d3a.0a61f353.js
rename to assets/js/0a138d3a.7a968efa.js
index 8f57f5cd8..8bf36f061 100644
--- a/assets/js/0a138d3a.0a61f353.js
+++ b/assets/js/0a138d3a.7a968efa.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[7770],{36095:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var a=n(52204),o=n(74848),i=n(28453);const s={authors:"christy",slug:"playcanvas-voted-number-1-webgl-engine-by-develop-magazine",title:"PlayCanvas Voted the Leading WebGL Engine"},r=void 0,l={authorsImageUrls:[void 0]},d=[];function c(e){const t={a:"a",img:"img",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(20771).A+"",children:(0,o.jsx)(t.img,{alt:"develop 1001-003",src:n(96341).A+"",width:"800",height:"523"})})}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsxs)(t.strong,{children:["Develop Magazine have voted PlayCanvas the leading\xa0WebGL Engine in their ",(0,o.jsx)(t.a,{href:"http://content.yudu.com/A2xcc7/Dev100TechList2014/resources/index.htm?referrerUrl=",children:"Develop 100"})," rank of top game development technology. Ranking 52nd out of 100 Development products and tools, our engine\xa0bested other great engines\xa0to top the WebGL podium."]})}),"\n",(0,o.jsxs)(t.p,{children:["Noting in particular our real time cloud collaboration and features such as per pixel lighting,\xa0physics options and entity systems the kind folks at develop magazine gave us a great write up and it feels terrific to be recognized by them for our efforts. Develop magazine have also nominated us for an ",(0,o.jsx)(t.a,{href:"http://www.develop-online.net/news/develop-awards-2014-the-finalists-revealed/0192226",children:"Industry Excellence Award"})," in the Technical Innovation category. We will be attending the awards ceremony in Brighton this month and whether we\xa0leave the event\xa0with the award or not, we are thrilled to be recognized in the same category as products like\xa0the Oculus Rift Development Kit 2 and Sony's 'Project Morpheus'."]}),"\n",(0,o.jsx)(t.p,{children:"All we ask of you our PlayCanvas family\xa0is that you keep your ears and eyes peeled. With all the great plans we have lined up for the near future we expect that the recent accolades will be the first of many. Until then we are glad that the game development industry\xa0are taking notice of our fresh take on the game engine."})]})}function p(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},20771:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/files/develop-1001-003-a8ddd82e2251e33063b0427b16d5fd03.jpg"},96341:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/develop-1001-003-a8ddd82e2251e33063b0427b16d5fd03.jpg"},28453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>r});var a=n(96540);const o={},i=a.createContext(o);function s(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),a.createElement(i.Provider,{value:t},e.children)}},52204:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-voted-number-1-webgl-engine-by-develop-magazine","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-03-playcanvas-voted-number-1-webgl-engine-by-develop-magazine.md","source":"@site/blog/2014-07-03-playcanvas-voted-number-1-webgl-engine-by-develop-magazine.md","title":"PlayCanvas Voted the Leading WebGL Engine","description":"develop 1001-003","date":"2014-07-03T00:00:00.000Z","tags":[],"readingTime":1.015,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-voted-number-1-webgl-engine-by-develop-magazine","title":"PlayCanvas Voted the Leading WebGL Engine"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 04/07/14","permalink":"/playcanvas-update-040714"},"nextItem":{"title":"Meet the PlayCanvas team: Kevin Rooney","permalink":"/meet-the-playcanvas-team-kevin-rooney"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[7770],{36095:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var a=n(52204),o=n(74848),r=n(28453);const i={authors:"christy",slug:"playcanvas-voted-number-1-webgl-engine-by-develop-magazine",title:"PlayCanvas Voted the Leading WebGL Engine"},s=void 0,l={authorsImageUrls:[void 0]},d=[];function c(e){const t={a:"a",img:"img",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(20771).A+"",children:(0,o.jsx)(t.img,{alt:"develop 1001-003",src:n(96341).A+"",width:"800",height:"523"})})}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsxs)(t.strong,{children:["Develop Magazine have voted PlayCanvas the leading\xa0WebGL Engine in their ",(0,o.jsx)(t.a,{href:"http://content.yudu.com/A2xcc7/Dev100TechList2014/resources/index.htm?referrerUrl=",children:"Develop 100"})," rank of top game development technology. Ranking 52nd out of 100 Development products and tools, our engine\xa0bested other great engines\xa0to top the WebGL podium."]})}),"\n",(0,o.jsxs)(t.p,{children:["Noting in particular our real time cloud collaboration and features such as per pixel lighting,\xa0physics options and entity systems the kind folks at develop magazine gave us a great write up and it feels terrific to be recognized by them for our efforts. Develop magazine have also nominated us for an ",(0,o.jsx)(t.a,{href:"http://www.develop-online.net/news/develop-awards-2014-the-finalists-revealed/0192226",children:"Industry Excellence Award"})," in the Technical Innovation category. We will be attending the awards ceremony in Brighton this month and whether we\xa0leave the event\xa0with the award or not, we are thrilled to be recognized in the same category as products like\xa0the Oculus Rift Development Kit 2 and Sony's 'Project Morpheus'."]}),"\n",(0,o.jsx)(t.p,{children:"All we ask of you our PlayCanvas family\xa0is that you keep your ears and eyes peeled. With all the great plans we have lined up for the near future we expect that the recent accolades will be the first of many. Until then we are glad that the game development industry\xa0are taking notice of our fresh take on the game engine."})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},20771:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/files/develop-1001-003-a8ddd82e2251e33063b0427b16d5fd03.jpg"},96341:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/develop-1001-003-a8ddd82e2251e33063b0427b16d5fd03.jpg"},28453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>s});var a=n(96540);const o={},r=a.createContext(o);function i(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),a.createElement(r.Provider,{value:t},e.children)}},52204:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-voted-number-1-webgl-engine-by-develop-magazine","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-03-playcanvas-voted-number-1-webgl-engine-by-develop-magazine.md","source":"@site/blog/2014-07-03-playcanvas-voted-number-1-webgl-engine-by-develop-magazine.md","title":"PlayCanvas Voted the Leading WebGL Engine","description":"develop 1001-003","date":"2014-07-03T00:00:00.000Z","tags":[],"readingTime":1.015,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-voted-number-1-webgl-engine-by-develop-magazine","title":"PlayCanvas Voted the Leading WebGL Engine"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 04/07/14","permalink":"/playcanvas-update-040714"},"nextItem":{"title":"Meet the PlayCanvas team: Kevin Rooney","permalink":"/meet-the-playcanvas-team-kevin-rooney"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/0d3cf8e2.5525df15.js b/assets/js/0d3cf8e2.5525df15.js
deleted file mode 100644
index fda850efa..000000000
--- a/assets/js/0d3cf8e2.5525df15.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[9478],{6386:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>n,toc:()=>c});var n=a(56287),s=a(74848),i=a(28453);const r={authors:"christy",slug:"meet-the-playcanvas-team-dave-evans",title:"Meet the PlayCanvas team: Dave Evans",tags:["team"]},o=void 0,l={authorsImageUrls:[void 0]},c=[];function m(e){const t={a:"a",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Dave",src:a(75577).A+"",width:"640",height:"427"})}),"\n",(0,s.jsxs)(t.p,{children:["Next up is PlayCanvas'\xa0Chief Technical Officer who shares his name with beanie clad U2 Guitarist 'The Edge', ",(0,s.jsx)(t.a,{href:"https://twitter.com/daredevildave",children:"Dave Evans"}),". Dave grew up just outside of Cambridge in Duxford where he says he was regularly dive-bombed by old planes from the nearby Imperial war Museum."]})]})}function p(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}},75577:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/team-dave-2014-e6f57df9fc5663e08e0c74f3189193c1.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>r,x:()=>o});var n=a(96540);const s={},i=n.createContext(s);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(i.Provider,{value:t},e.children)}},56287:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-dave-evans","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-27-meet-the-playcanvas-team-dave-evans.md","source":"@site/blog/2014-06-27-meet-the-playcanvas-team-dave-evans.md","title":"Meet the PlayCanvas team: Dave Evans","description":"Dave","date":"2014-06-27T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":2.45,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-dave-evans","title":"Meet the PlayCanvas team: Dave Evans","tags":["team"]},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Kevin Rooney","permalink":"/meet-the-playcanvas-team-kevin-rooney"},"nextItem":{"title":"PlayCanvas Update 27/06/14","permalink":"/playcanvas-update-27-06-14"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/0d3cf8e2.a85d5df5.js b/assets/js/0d3cf8e2.a85d5df5.js
new file mode 100644
index 000000000..662e4ad05
--- /dev/null
+++ b/assets/js/0d3cf8e2.a85d5df5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[9478],{6386:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>n,toc:()=>c});var n=t(56287),s=t(74848),r=t(28453);const i={authors:"christy",slug:"meet-the-playcanvas-team-dave-evans",title:"Meet the PlayCanvas team: Dave Evans",tags:["team"]},o=void 0,l={authorsImageUrls:[void 0]},c=[];function m(e){const a={a:"a",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:(0,s.jsx)(a.img,{alt:"Dave",src:t(75577).A+"",width:"640",height:"427"})}),"\n",(0,s.jsxs)(a.p,{children:["Next up is PlayCanvas'\xa0Chief Technical Officer who shares his name with beanie clad U2 Guitarist 'The Edge', ",(0,s.jsx)(a.a,{href:"https://twitter.com/daredevildave",children:"Dave Evans"}),". Dave grew up just outside of Cambridge in Duxford where he says he was regularly dive-bombed by old planes from the nearby Imperial war Museum."]})]})}function h(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}},75577:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/team-dave-2014-e6f57df9fc5663e08e0c74f3189193c1.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>o});var n=t(96540);const s={},r=n.createContext(s);function i(e){const a=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(r.Provider,{value:a},e.children)}},56287:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-dave-evans","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-27-meet-the-playcanvas-team-dave-evans.md","source":"@site/blog/2014-06-27-meet-the-playcanvas-team-dave-evans.md","title":"Meet the PlayCanvas team: Dave Evans","description":"Dave","date":"2014-06-27T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":2.45,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-dave-evans","title":"Meet the PlayCanvas team: Dave Evans","tags":["team"]},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Kevin Rooney","permalink":"/meet-the-playcanvas-team-kevin-rooney"},"nextItem":{"title":"PlayCanvas Update 27/06/14","permalink":"/playcanvas-update-27-06-14"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/116ac02d.06dec000.js b/assets/js/116ac02d.1d6d8417.js
similarity index 91%
rename from assets/js/116ac02d.06dec000.js
rename to assets/js/116ac02d.1d6d8417.js
index 23f69efab..da44b2fc2 100644
--- a/assets/js/116ac02d.06dec000.js
+++ b/assets/js/116ac02d.1d6d8417.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[11745],{25218:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>r,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>t,toc:()=>h});var t=n(35037),s=n(74848),i=n(28453);const o={authors:"christy",slug:"playcanvas-update-040714",title:"PlayCanvas Update 04/07/14"},l=void 0,r={authorsImageUrls:[void 0]},h=[{value:"Asset Lists",id:"asset-lists",level:3},{value:"Ranks and Nominations",id:"ranks-and-nominations",level:3},{value:"Events",id:"events",level:3},{value:"LizziP and her Team Slam the MalmoJammo",id:"lizzip-and-her-team-slam-the-malmojammo",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function c(e){const a={a:"a",br:"br",em:"em",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(a.p,{children:["There has been plenty going on at HQ since our last update and it is all making game development on our engine that little bit easier. Here\u2019s a run down of engine optimizations, new features\xa0and what happened behind the scenes at\xa0",(0,s.jsx)(a.a,{href:"https://playcanvas.com/",children:"PlayCanvas"}),"\xa0this week."]}),"\n",(0,s.jsxs)(a.p,{children:[(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(48301).A+"",children:(0,s.jsx)(a.img,{alt:"Spacetifacts",src:n(44239).A+"",width:"800",height:"459"})}),(0,s.jsx)(a.br,{}),"\n",(0,s.jsx)(a.em,{children:"Team HexPenguin's PlayCanvas game 'Spacetifacts' won the Malmo Game Jam"})]}),"\n",(0,s.jsx)(a.h3,{id:"asset-lists",children:"Asset Lists"}),"\n",(0,s.jsx)(a.p,{children:"We now include Assets lists for each Pack when running your game, allowing you to\xa0load a Pack with all Assets. This means you can make multiple levels, each as a Pack and load them at runtime, reducing the amount of data you have to download upfront."}),"\n",(0,s.jsx)(a.h3,{id:"ranks-and-nominations",children:"Ranks and Nominations"}),"\n",(0,s.jsxs)(a.p,{children:["We have been paid some incredible compliments in the last week or so. In particular Develop Magazine ranked us as the top WebGL game engine in their ",(0,s.jsx)(a.a,{href:"http://content.yudu.com/A2xcc7/Dev100TechList2014/resources/index.htm?referrerUrl=",children:"Develop 100"})," gaming tech list. We have also been nominated for a ",(0,s.jsx)(a.a,{href:"https://mcvuk.com/business-news/publishing/develop-awards-2014-the-finalists-revealed/",children:"Technical Innovation award"}),"\xa0by Develop Magazine as they placed in the same category as products like the Oculus Rift Development Kit 2. Although these accolades from Develop\xa0have left\xa0us feeling particularly grateful, it is great that the game development industry in general is recognizing our recent efforts."]}),"\n",(0,s.jsx)(a.h3,{id:"events",children:"Events"}),"\n",(0,s.jsxs)(a.p,{children:["On Tuesday we hosted \xa0the ",(0,s.jsx)(a.a,{href:"http://www.meetup.com/London-HTML5-Game-Developers/events/188693262/",children:"London HTML5 Game Development Meet Up"})," at\xa0the London HQ of Mozilla. There were some great talks from Jesse Freeman (on HTML5 vs Unity), Karl Bunyan (who spoke on wrapping games with his app PhoneGap) and our very own Senior Engineer Max (who spoke about creating colorTanks in a game jam). At one point during his talk, Max edited his game 'colorTanks' in the PlayCanvas Editor live and had most of the attendees playing the game at the same time. Can't wait for the next meet up!"]}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(46321).A+"",children:(0,s.jsx)(a.img,{alt:"MaksTalk-001",src:n(14115).A+"",width:"800",height:"600"})})}),"\n",(0,s.jsx)(a.h3,{id:"lizzip-and-her-team-slam-the-malmojammo",children:"LizziP and her Team Slam the MalmoJammo"}),"\n",(0,s.jsxs)(a.p,{children:["Team ",(0,s.jsx)(a.a,{href:"https://twitter.com/HexPenguin",children:"HexPenguin"})," used PlayCanvas in the Malmo Gam Jam to create their winning game. We love seeing progress in our\xa0communities projects but to hear that\xa0PlayCanvas users are using the engine to win (in the intense conditions of a game jam) is incredible. Why not play team HexPenguins award winning game ",(0,s.jsx)(a.a,{href:"https://playcanvas.com/project/12400/overview/malmojammo",children:"here"}),"?"]}),"\n",(0,s.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(a.li,{children:["Like the\xa0",(0,s.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},46321:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/files/MaksTalk-001-d2fde38a70960d86584569b0132c0904.jpg"},48301:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/files/Spacetifacts-33e448093bc44cced7fee33bea8c2fab.jpg"},14115:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/MaksTalk-001-d2fde38a70960d86584569b0132c0904.jpg"},44239:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/Spacetifacts-33e448093bc44cced7fee33bea8c2fab.jpg"},28453:(e,a,n)=>{n.d(a,{R:()=>o,x:()=>l});var t=n(96540);const s={},i=t.createContext(s);function o(e){const a=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:a},e.children)}},35037:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-040714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-04-playcanvas-update-040714.md","source":"@site/blog/2014-07-04-playcanvas-update-040714.md","title":"PlayCanvas Update 04/07/14","description":"There has been plenty going on at HQ since our last update and it is all making game development on our engine that little bit easier. Here\u2019s a run down of engine optimizations, new features\xa0and what happened behind the scenes at\xa0PlayCanvas\xa0this week.","date":"2014-07-04T00:00:00.000Z","tags":[],"readingTime":1.905,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-040714","title":"PlayCanvas Update 04/07/14"},"unlisted":false,"prevItem":{"title":"Great British Summer Game Jam","permalink":"/great-british-summer-game-jam"},"nextItem":{"title":"PlayCanvas Voted the Leading WebGL Engine","permalink":"/playcanvas-voted-number-1-webgl-engine-by-develop-magazine"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[11745],{25218:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>r,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>t,toc:()=>h});var t=n(35037),s=n(74848),i=n(28453);const o={authors:"christy",slug:"playcanvas-update-040714",title:"PlayCanvas Update 04/07/14"},l=void 0,r={authorsImageUrls:[void 0]},h=[{value:"Asset Lists",id:"asset-lists",level:3},{value:"Ranks and Nominations",id:"ranks-and-nominations",level:3},{value:"Events",id:"events",level:3},{value:"LizziP and her Team Slam the MalmoJammo",id:"lizzip-and-her-team-slam-the-malmojammo",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function c(e){const a={a:"a",br:"br",em:"em",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(a.p,{children:["There has been plenty going on at HQ since our last update and it is all making game development on our engine that little bit easier. Here\u2019s a run down of engine optimizations, new features\xa0and what happened behind the scenes at\xa0",(0,s.jsx)(a.a,{href:"https://playcanvas.com/",children:"PlayCanvas"}),"\xa0this week."]}),"\n",(0,s.jsxs)(a.p,{children:[(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(48301).A+"",children:(0,s.jsx)(a.img,{alt:"Spacetifacts",src:n(44239).A+"",width:"800",height:"459"})}),(0,s.jsx)(a.br,{}),"\n",(0,s.jsx)(a.em,{children:"Team HexPenguin's PlayCanvas game 'Spacetifacts' won the Malmo Game Jam"})]}),"\n",(0,s.jsx)(a.h3,{id:"asset-lists",children:"Asset Lists"}),"\n",(0,s.jsx)(a.p,{children:"We now include Assets lists for each Pack when running your game, allowing you to\xa0load a Pack with all Assets. This means you can make multiple levels, each as a Pack and load them at runtime, reducing the amount of data you have to download upfront."}),"\n",(0,s.jsx)(a.h3,{id:"ranks-and-nominations",children:"Ranks and Nominations"}),"\n",(0,s.jsxs)(a.p,{children:["We have been paid some incredible compliments in the last week or so. In particular Develop Magazine ranked us as the top WebGL game engine in their ",(0,s.jsx)(a.a,{href:"http://content.yudu.com/A2xcc7/Dev100TechList2014/resources/index.htm?referrerUrl=",children:"Develop 100"})," gaming tech list. We have also been nominated for a ",(0,s.jsx)(a.a,{href:"https://mcvuk.com/business-news/publishing/develop-awards-2014-the-finalists-revealed/",children:"Technical Innovation award"}),"\xa0by Develop Magazine as they placed in the same category as products like the Oculus Rift Development Kit 2. Although these accolades from Develop\xa0have left\xa0us feeling particularly grateful, it is great that the game development industry in general is recognizing our recent efforts."]}),"\n",(0,s.jsx)(a.h3,{id:"events",children:"Events"}),"\n",(0,s.jsxs)(a.p,{children:["On Tuesday we hosted \xa0the ",(0,s.jsx)(a.a,{href:"http://www.meetup.com/London-HTML5-Game-Developers/events/188693262/",children:"London HTML5 Game Development Meet Up"})," at\xa0the London HQ of Mozilla. There were some great talks from Jesse Freeman (on HTML5 vs Unity), Karl Bunyan (who spoke on wrapping games with his app PhoneGap) and our very own Senior Engineer Max (who spoke about creating colorTanks in a game jam). At one point during his talk, Max edited his game 'colorTanks' in the PlayCanvas Editor live and had most of the attendees playing the game at the same time. Can't wait for the next meet up!"]}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(46321).A+"",children:(0,s.jsx)(a.img,{alt:"MaksTalk-001",src:n(14115).A+"",width:"800",height:"600"})})}),"\n",(0,s.jsx)(a.h3,{id:"lizzip-and-her-team-slam-the-malmojammo",children:"LizziP and her Team Slam the MalmoJammo"}),"\n",(0,s.jsxs)(a.p,{children:["Team ",(0,s.jsx)(a.a,{href:"https://twitter.com/HexPenguin",children:"HexPenguin"})," used PlayCanvas in the Malmo Gam Jam to create their winning game. We love seeing progress in our\xa0communities projects but to hear that\xa0PlayCanvas users are using the engine to win (in the intense conditions of a game jam) is incredible. Why not play team HexPenguins award winning game ",(0,s.jsx)(a.a,{href:"https://playcanvas.com/project/12400/overview/malmojammo",children:"here"}),"?"]}),"\n",(0,s.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(a.li,{children:["Like the\xa0",(0,s.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},46321:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/files/MaksTalk-001-d2fde38a70960d86584569b0132c0904.jpg"},48301:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/files/Spacetifacts-33e448093bc44cced7fee33bea8c2fab.jpg"},14115:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/MaksTalk-001-d2fde38a70960d86584569b0132c0904.jpg"},44239:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/Spacetifacts-33e448093bc44cced7fee33bea8c2fab.jpg"},28453:(e,a,n)=>{n.d(a,{R:()=>o,x:()=>l});var t=n(96540);const s={},i=t.createContext(s);function o(e){const a=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:a},e.children)}},35037:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-040714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-04-playcanvas-update-040714.md","source":"@site/blog/2014-07-04-playcanvas-update-040714.md","title":"PlayCanvas Update 04/07/14","description":"There has been plenty going on at HQ since our last update and it is all making game development on our engine that little bit easier. Here\u2019s a run down of engine optimizations, new features\xa0and what happened behind the scenes at\xa0PlayCanvas\xa0this week.","date":"2014-07-04T00:00:00.000Z","tags":[],"readingTime":1.905,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-040714","title":"PlayCanvas Update 04/07/14"},"unlisted":false,"prevItem":{"title":"Great British Summer Game Jam","permalink":"/great-british-summer-game-jam"},"nextItem":{"title":"PlayCanvas Voted the Leading WebGL Engine","permalink":"/playcanvas-voted-number-1-webgl-engine-by-develop-magazine"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/1389ba65.3ff49c65.js b/assets/js/1389ba65.804e92aa.js
similarity index 60%
rename from assets/js/1389ba65.3ff49c65.js
rename to assets/js/1389ba65.804e92aa.js
index f493ce001..34699420c 100644
--- a/assets/js/1389ba65.3ff49c65.js
+++ b/assets/js/1389ba65.804e92aa.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[63098],{5621:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>n,metadata:()=>o,toc:()=>p});var o=i(1158),a=i(74848),r=i(28453);const n={authors:"paulo",slug:"webar-experiences-developer-spotlight-with-animech",title:"Web AR Experiences - Developer Spotlight with Animech",tags:["ar","webxr","spotlight"]},l=void 0,s={authorsImageUrls:[void 0]},p=[];function h(e){const t={a:"a",p:"p",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"iframe-container",children:(0,a.jsx)("iframe",{loading:"lazy",width:"560",height:"315",src:"https://www.youtube.com/embed/LLuB-2OpcFo",title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0})}),"\n",(0,a.jsx)(t.p,{children:"Welcome to the third instalment of Developer Spotlight, a series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web."}),"\n",(0,a.jsxs)(t.p,{children:["Today we are excited to be joined by Staffan Hagberg, CMO of ",(0,a.jsx)(t.a,{href:"https://animech.com/en/",children:"Animech"}),"."]})]})}function c(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},28453:(e,t,i)=>{i.d(t,{R:()=>n,x:()=>l});var o=i(96540);const a={},r=o.createContext(a);function n(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:n(e.components),o.createElement(r.Provider,{value:t},e.children)}},1158:e=>{e.exports=JSON.parse('{"permalink":"/webar-experiences-developer-spotlight-with-animech","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2022-10-27-webar-experiences-developer-spotlight-with-animech.md","source":"@site/blog/2022-10-27-webar-experiences-developer-spotlight-with-animech.md","title":"Web AR Experiences - Developer Spotlight with Animech","description":"Welcome to the third instalment of Developer Spotlight, a series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web.","date":"2022-10-27T00:00:00.000Z","tags":[{"inline":true,"label":"ar","permalink":"/tags/ar"},{"inline":true,"label":"webxr","permalink":"/tags/webxr"},{"inline":true,"label":"spotlight","permalink":"/tags/spotlight"}],"readingTime":6.44,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGBCxiefbbUlw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1654615914498?e=1730332800&v=beta&t=430DvI8uuos5obx7BhhHBqhT5TnNTv3q91eOOg6diII","key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"webar-experiences-developer-spotlight-with-animech","title":"Web AR Experiences - Developer Spotlight with Animech","tags":["ar","webxr","spotlight"]},"unlisted":false,"prevItem":{"title":"Porting Unreal Scenes to the Browser with PlayCanvas - Developer Spotlight with Leonidas Maliokas","permalink":"/porting-unreal-scenes-to-browser-with-playcanvas-developer-spotlight-with-leonidas-maliokas"},"nextItem":{"title":"glTF Viewer Arrives on Mobile with AR Support","permalink":"/gltf-viewer-arrives-on-mobile-with-ar-support"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[63098],{5621:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>h,frontMatter:()=>n,metadata:()=>i,toc:()=>p});var i=o(1158),a=o(74848),r=o(28453);const n={authors:"paulo",slug:"webar-experiences-developer-spotlight-with-animech",title:"Web AR Experiences - Developer Spotlight with Animech",tags:["ar","webxr","spotlight"]},l=void 0,s={authorsImageUrls:[void 0]},p=[];function c(e){const t={a:"a",p:"p",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"iframe-container",children:(0,a.jsx)("iframe",{loading:"lazy",width:"560",height:"315",src:"https://www.youtube.com/embed/LLuB-2OpcFo",title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0})}),"\n",(0,a.jsx)(t.p,{children:"Welcome to the third instalment of Developer Spotlight, a series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web."}),"\n",(0,a.jsxs)(t.p,{children:["Today we are excited to be joined by Staffan Hagberg, CMO of ",(0,a.jsx)(t.a,{href:"https://animech.com/en/",children:"Animech"}),"."]})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},28453:(e,t,o)=>{o.d(t,{R:()=>n,x:()=>l});var i=o(96540);const a={},r=i.createContext(a);function n(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:n(e.components),i.createElement(r.Provider,{value:t},e.children)}},1158:e=>{e.exports=JSON.parse('{"permalink":"/webar-experiences-developer-spotlight-with-animech","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2022-10-27-webar-experiences-developer-spotlight-with-animech.md","source":"@site/blog/2022-10-27-webar-experiences-developer-spotlight-with-animech.md","title":"Web AR Experiences - Developer Spotlight with Animech","description":"Welcome to the third instalment of Developer Spotlight, a series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web.","date":"2022-10-27T00:00:00.000Z","tags":[{"inline":true,"label":"ar","permalink":"/tags/ar"},{"inline":true,"label":"webxr","permalink":"/tags/webxr"},{"inline":true,"label":"spotlight","permalink":"/tags/spotlight"}],"readingTime":6.44,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"webar-experiences-developer-spotlight-with-animech","title":"Web AR Experiences - Developer Spotlight with Animech","tags":["ar","webxr","spotlight"]},"unlisted":false,"prevItem":{"title":"Porting Unreal Scenes to the Browser with PlayCanvas - Developer Spotlight with Leonidas Maliokas","permalink":"/porting-unreal-scenes-to-browser-with-playcanvas-developer-spotlight-with-leonidas-maliokas"},"nextItem":{"title":"glTF Viewer Arrives on Mobile with AR Support","permalink":"/gltf-viewer-arrives-on-mobile-with-ar-support"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/146a2199.bb0888d5.js b/assets/js/146a2199.bb0888d5.js
new file mode 100644
index 000000000..9d715d82d
--- /dev/null
+++ b/assets/js/146a2199.bb0888d5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[29482],{64862:(a,e,t)=>{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>n,toc:()=>c});var n=t(71625),s=t(74848),o=t(28453);const r={authors:"adam",slug:"playcanvas-update-150814",title:"PlayCanvas Update 15/08/14"},l=void 0,i={authorsImageUrls:[void 0]},c=[];function p(a){const e={p:"p",...(0,o.R)(),...a.components};return(0,s.jsx)(e.p,{children:"This week, PlayCanvas traveled far and wide to attend the world's biggest games and graphics conferences."})}function d(a={}){const{wrapper:e}={...(0,o.R)(),...a.components};return e?(0,s.jsx)(e,{...a,children:(0,s.jsx)(p,{...a})}):p(a)}},28453:(a,e,t)=>{t.d(e,{R:()=>r,x:()=>l});var n=t(96540);const s={},o=n.createContext(s);function r(a){const e=n.useContext(o);return n.useMemo((function(){return"function"==typeof a?a(e):{...e,...a}}),[e,a])}function l(a){let e;return e=a.disableParentContext?"function"==typeof a.components?a.components(s):a.components||s:r(a.components),n.createElement(o.Provider,{value:e},a.children)}},71625:a=>{a.exports=JSON.parse('{"permalink":"/playcanvas-update-150814","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-08-15-playcanvas-update-150814.md","source":"@site/blog/2014-08-15-playcanvas-update-150814.md","title":"PlayCanvas Update 15/08/14","description":"This week, PlayCanvas traveled far and wide to attend the world\'s biggest games and graphics conferences.","date":"2014-08-15T00:00:00.000Z","tags":[],"readingTime":0.755,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-150814","title":"PlayCanvas Update 15/08/14"},"unlisted":false,"prevItem":{"title":"WebGL on iPhone in less than a minute","permalink":"/webgl-on-iphone-in-less-than-a-minute"},"nextItem":{"title":"PlayCanvas Update 08/08/14","permalink":"/playcanvas-update-080814"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/146a2199.f414872f.js b/assets/js/146a2199.f414872f.js
deleted file mode 100644
index 73b138a71..000000000
--- a/assets/js/146a2199.f414872f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[29482],{64862:(a,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>i,metadata:()=>n,toc:()=>p});var n=t(71625),s=t(74848),o=t(28453);const i={authors:"adam",slug:"playcanvas-update-150814",title:"PlayCanvas Update 15/08/14"},r=void 0,l={authorsImageUrls:[void 0]},p=[];function d(a){const e={p:"p",...(0,o.R)(),...a.components};return(0,s.jsx)(e.p,{children:"This week, PlayCanvas traveled far and wide to attend the world's biggest games and graphics conferences."})}function c(a={}){const{wrapper:e}={...(0,o.R)(),...a.components};return e?(0,s.jsx)(e,{...a,children:(0,s.jsx)(d,{...a})}):d(a)}},28453:(a,e,t)=>{t.d(e,{R:()=>i,x:()=>r});var n=t(96540);const s={},o=n.createContext(s);function i(a){const e=n.useContext(o);return n.useMemo((function(){return"function"==typeof a?a(e):{...e,...a}}),[e,a])}function r(a){let e;return e=a.disableParentContext?"function"==typeof a.components?a.components(s):a.components||s:i(a.components),n.createElement(o.Provider,{value:e},a.children)}},71625:a=>{a.exports=JSON.parse('{"permalink":"/playcanvas-update-150814","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-08-15-playcanvas-update-150814.md","source":"@site/blog/2014-08-15-playcanvas-update-150814.md","title":"PlayCanvas Update 15/08/14","description":"This week, PlayCanvas traveled far and wide to attend the world\'s biggest games and graphics conferences.","date":"2014-08-15T00:00:00.000Z","tags":[],"readingTime":0.755,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-150814","title":"PlayCanvas Update 15/08/14"},"unlisted":false,"prevItem":{"title":"WebGL on iPhone in less than a minute","permalink":"/webgl-on-iphone-in-less-than-a-minute"},"nextItem":{"title":"PlayCanvas Update 08/08/14","permalink":"/playcanvas-update-080814"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/15fcf2ed.19b6e15f.js b/assets/js/15fcf2ed.800c00ce.js
similarity index 75%
rename from assets/js/15fcf2ed.19b6e15f.js
rename to assets/js/15fcf2ed.800c00ce.js
index f27abcb8d..d8a5b8ac7 100644
--- a/assets/js/15fcf2ed.19b6e15f.js
+++ b/assets/js/15fcf2ed.800c00ce.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[45583],{67850:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>d});var t=n(71625),s=n(74848),o=n(28453);const i={authors:"adam",slug:"playcanvas-update-150814",title:"PlayCanvas Update 15/08/14"},l=void 0,r={authorsImageUrls:[void 0]},d=[{value:"GDC Europe, gamescom and SIGGRAPH",id:"gdc-europe-gamescom-and-siggraph",level:3},{value:"Features and Fixes",id:"features-and-fixes",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function c(e){const a={a:"a",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:"This week, PlayCanvas traveled far and wide to attend the world's biggest games and graphics conferences."}),"\n",(0,s.jsx)(a.h3,{id:"gdc-europe-gamescom-and-siggraph",children:"GDC Europe, gamescom and SIGGRAPH"}),"\n",(0,s.jsxs)(a.p,{children:["Will (PlayCanvas CEO) headed off to ",(0,s.jsx)(a.a,{href:"https://twitter.com/GDC_Europe",children:"GDC Europe"})," and ",(0,s.jsx)(a.a,{href:"https://www.gamescom.global/",children:"gamescom"}),"this week while Dave (PlayCanvas CTO) traveled to Vancouver for SIGGRAPH. PlayCanvas made a real splash at both and in the next few days, we'll be writing a blog entry dedicated to each trip."]}),"\n",(0,s.jsx)(a.h3,{id:"features-and-fixes",children:"Features and Fixes"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:"We improved the rendering of the PlayCanvas website at\xa0mobile resolutions. Explore the site on your smartphone to see how great the site looks now."}),"\n",(0,s.jsx)(a.li,{children:"Kevin, our Design Guru, has refreshed the design on various 'logged in' pages, making navigation clearer and simpler."}),"\n"]}),"\n",(0,s.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(a.li,{children:["Like the\xa0",(0,s.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},28453:(e,a,n)=>{n.d(a,{R:()=>i,x:()=>l});var t=n(96540);const s={},o=t.createContext(s);function i(e){const a=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),t.createElement(o.Provider,{value:a},e.children)}},71625:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-150814","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-08-15-playcanvas-update-150814.md","source":"@site/blog/2014-08-15-playcanvas-update-150814.md","title":"PlayCanvas Update 15/08/14","description":"This week, PlayCanvas traveled far and wide to attend the world\'s biggest games and graphics conferences.","date":"2014-08-15T00:00:00.000Z","tags":[],"readingTime":0.755,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-150814","title":"PlayCanvas Update 15/08/14"},"unlisted":false,"prevItem":{"title":"WebGL on iPhone in less than a minute","permalink":"/webgl-on-iphone-in-less-than-a-minute"},"nextItem":{"title":"PlayCanvas Update 08/08/14","permalink":"/playcanvas-update-080814"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[45583],{67850:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>i,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>d});var t=n(71625),s=n(74848),o=n(28453);const r={authors:"adam",slug:"playcanvas-update-150814",title:"PlayCanvas Update 15/08/14"},l=void 0,i={authorsImageUrls:[void 0]},d=[{value:"GDC Europe, gamescom and SIGGRAPH",id:"gdc-europe-gamescom-and-siggraph",level:3},{value:"Features and Fixes",id:"features-and-fixes",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function c(e){const a={a:"a",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:"This week, PlayCanvas traveled far and wide to attend the world's biggest games and graphics conferences."}),"\n",(0,s.jsx)(a.h3,{id:"gdc-europe-gamescom-and-siggraph",children:"GDC Europe, gamescom and SIGGRAPH"}),"\n",(0,s.jsxs)(a.p,{children:["Will (PlayCanvas CEO) headed off to ",(0,s.jsx)(a.a,{href:"https://twitter.com/GDC_Europe",children:"GDC Europe"})," and ",(0,s.jsx)(a.a,{href:"https://www.gamescom.global/",children:"gamescom"}),"this week while Dave (PlayCanvas CTO) traveled to Vancouver for SIGGRAPH. PlayCanvas made a real splash at both and in the next few days, we'll be writing a blog entry dedicated to each trip."]}),"\n",(0,s.jsx)(a.h3,{id:"features-and-fixes",children:"Features and Fixes"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:"We improved the rendering of the PlayCanvas website at\xa0mobile resolutions. Explore the site on your smartphone to see how great the site looks now."}),"\n",(0,s.jsx)(a.li,{children:"Kevin, our Design Guru, has refreshed the design on various 'logged in' pages, making navigation clearer and simpler."}),"\n"]}),"\n",(0,s.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(a.li,{children:["Like the\xa0",(0,s.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},28453:(e,a,n)=>{n.d(a,{R:()=>r,x:()=>l});var t=n(96540);const s={},o=t.createContext(s);function r(e){const a=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(o.Provider,{value:a},e.children)}},71625:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-150814","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-08-15-playcanvas-update-150814.md","source":"@site/blog/2014-08-15-playcanvas-update-150814.md","title":"PlayCanvas Update 15/08/14","description":"This week, PlayCanvas traveled far and wide to attend the world\'s biggest games and graphics conferences.","date":"2014-08-15T00:00:00.000Z","tags":[],"readingTime":0.755,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-150814","title":"PlayCanvas Update 15/08/14"},"unlisted":false,"prevItem":{"title":"WebGL on iPhone in less than a minute","permalink":"/webgl-on-iphone-in-less-than-a-minute"},"nextItem":{"title":"PlayCanvas Update 08/08/14","permalink":"/playcanvas-update-080814"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/18564d77.0eb1b6cc.js b/assets/js/18564d77.abd966f9.js
similarity index 89%
rename from assets/js/18564d77.0eb1b6cc.js
rename to assets/js/18564d77.abd966f9.js
index 7965fe6f9..4073302bb 100644
--- a/assets/js/18564d77.0eb1b6cc.js
+++ b/assets/js/18564d77.abd966f9.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[28271],{49616:(A,e,a)=>{a.r(e),a.d(e,{assets:()=>B,contentTitle:()=>c,default:()=>r,frontMatter:()=>g,metadata:()=>t,toc:()=>o});var t=a(37711),n=a(74848),s=a(28453);const g={authors:"christy",slug:"playhack-make-a-game-get-featured",title:"PLAYHACK - Make a game, get featured"},c=void 0,B={authorsImageUrls:[void 0]},o=[];function C(A){const e={a:"a",img:"img",p:"p",...(0,s.R)(),...A.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(85470).A+"",children:(0,n.jsx)(e.img,{alt:"PLAYHACK",src:a(48184).A+"",width:"603",height:"218"})})}),"\n",(0,n.jsx)(e.p,{children:"Calling all Game Developers!"}),"\n",(0,n.jsx)(e.p,{children:"PlayCanvas\u2019 first ever PLAYHACK is upon us and that can only mean a whole month's worth of fun and some incredible game developing."})]})}function r(A={}){const{wrapper:e}={...(0,s.R)(),...A.components};return e?(0,n.jsx)(e,{...A,children:(0,n.jsx)(C,{...A})}):C(A)}},85470:(A,e,a)=>{a.d(e,{A:()=>t});const t=a.p+"assets/files/PLAYHACK_clear-d8f5d7ea24516377332e8b75294e4d49.png"},48184:(A,e,a)=>{a.d(e,{A:()=>t});const t="data:image/png;base64,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AsBMIChiAAOkFHYEmIhtw0p5k3sEjEQELCCAECGickUMkRgCDKWgleZEEiIpLCC17utVUaRhgTIwyp3lla6XCkYDIYn6hsbFQOo+j5EIEI1648skpcA1zTQHLdc2cE3PpUP37nNPHtpxQct52HJOikggMCBHAFSUfi5S0MIAUlWrLclKe7pSSEsHBhlFh7kEyFp1jw8kbJmj3TxBRjAjorRhH4ipjUQpaBkgjAzIEYbKjVARSXqthZ00aHngGvvAwD3v/9BFB5Bw6nvePU2Clvv233zjtzdc+be/YIdwHrackwVkgIiWqlsCBOQGqHtj0dimE7uloEWrwlAQRKOJoS1ByUrVNJGAtVnSNADSSSshUo8Z0URMAQlhmAATMlJtTmBIFkUzdeuL37261X1SlR55D+25YAF7LXgJrZxz2mnTMGile+pk3fpBUjVqwoHrZOABElatWdOzL1uevftLxsbudPPsQ//GRMwdO8fG0W0Z8T9//nOmixcueBG7veTFJPDTB/8fCQyuXb9PyLJlY3u7llx9+42r2f6chy3n0nJaquIYQWaZSYUJTKV2CTGlASICU8uKUhFDKTrEVKkqnatcLRNJatdQWCCiFtecSGAAltILMtLPEDAS0m9CAIale0S0Yoh2ericaIDRY2879o2rznzfySto7eLpFLS631Ny5z3/svCiT16+Hz0gafmmtg/JaA+/bHnh69+w6pXv/pMVdPHtE//oWCbg9485etVr3vOejuf55X0/XnjbVVftxzTxB288atXxJ//XFSTc84MfHvutL9xAArEoDtkhgct52HIukxHBCgsyQSm6mJQBklGAFTEgkMmopCoMhckAGSCSAESgEGlWaw4r2rLsGGgpzZXOBFIUqDRTy6AF6WKFbTm3tV9+LO/j6hK1IsIQE2St/+29J5566j5JxzMJJvOervzS1R8BrmIaWP90up9Oxj6xaEzAmt883fU8d1933YSf24bhkQF2kGefeqbpnszsDOCaSQlczsOWcwKiSQjU4T0ZSKG0mKcIRBOZoiIZGBhJqioJozNZCnpqkzYkk0gkCAaxFLTaJRWljfsYkdA2aEVSgKQ7AkYg0ppz7mf3rzz6sre894wrbv3mtUwCSdeaGd0CF7CaXnPe1NS5RgxRHfZgGRBj3Dhg87AYKQrbOLAYCWYErPWeKbGFRbAWS3AGIFD7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"},28453:(A,e,a)=>{a.d(e,{R:()=>g,x:()=>c});var t=a(96540);const n={},s=t.createContext(n);function g(A){const e=t.useContext(s);return t.useMemo((function(){return"function"==typeof A?A(e):{...e,...A}}),[e,A])}function c(A){let e;return e=A.disableParentContext?"function"==typeof A.components?A.components(n):A.components||n:g(A.components),t.createElement(s.Provider,{value:e},A.children)}},37711:A=>{A.exports=JSON.parse('{"permalink":"/playhack-make-a-game-get-featured","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-10-20-playhack-make-a-game-get-featured.md","source":"@site/blog/2014-10-20-playhack-make-a-game-get-featured.md","title":"PLAYHACK - Make a game, get featured","description":"PLAYHACK","date":"2014-10-20T00:00:00.000Z","tags":[],"readingTime":1.54,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playhack-make-a-game-get-featured","title":"PLAYHACK - Make a game, get featured"},"unlisted":false,"prevItem":{"title":"PLAYHACK November - Adding Tank Controls","permalink":"/playhack-november-adding-tank-controls"},"nextItem":{"title":"HTML5 Game Development Community Meet Up","permalink":"/html5-game-development-community-meet-up"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[28271],{49616:(A,e,a)=>{a.r(e),a.d(e,{assets:()=>B,contentTitle:()=>c,default:()=>r,frontMatter:()=>s,metadata:()=>t,toc:()=>C});var t=a(37711),n=a(74848),g=a(28453);const s={authors:"christy",slug:"playhack-make-a-game-get-featured",title:"PLAYHACK - Make a game, get featured"},c=void 0,B={authorsImageUrls:[void 0]},C=[];function o(A){const e={a:"a",img:"img",p:"p",...(0,g.R)(),...A.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(85470).A+"",children:(0,n.jsx)(e.img,{alt:"PLAYHACK",src:a(48184).A+"",width:"603",height:"218"})})}),"\n",(0,n.jsx)(e.p,{children:"Calling all Game Developers!"}),"\n",(0,n.jsx)(e.p,{children:"PlayCanvas\u2019 first ever PLAYHACK is upon us and that can only mean a whole month's worth of fun and some incredible game developing."})]})}function r(A={}){const{wrapper:e}={...(0,g.R)(),...A.components};return e?(0,n.jsx)(e,{...A,children:(0,n.jsx)(o,{...A})}):o(A)}},85470:(A,e,a)=>{a.d(e,{A:()=>t});const t=a.p+"assets/files/PLAYHACK_clear-d8f5d7ea24516377332e8b75294e4d49.png"},48184:(A,e,a)=>{a.d(e,{A:()=>t});const t="data:image/png;base64,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AsBMIChiAAOkFHYEmIhtw0p5k3sEjEQELCCAECGickUMkRgCDKWgleZEEiIpLCC17utVUaRhgTIwyp3lla6XCkYDIYn6hsbFQOo+j5EIEI1648skpcA1zTQHLdc2cE3PpUP37nNPHtpxQct52HJOikggMCBHAFSUfi5S0MIAUlWrLclKe7pSSEsHBhlFh7kEyFp1jw8kbJmj3TxBRjAjorRhH4ipjUQpaBkgjAzIEYbKjVARSXqthZ00aHngGvvAwD3v/9BFB5Bw6nvePU2Clvv233zjtzdc+be/YIdwHrackwVkgIiWqlsCBOQGqHtj0dimE7uloEWrwlAQRKOJoS1ByUrVNJGAtVnSNADSSSshUo8Z0URMAQlhmAATMlJtTmBIFkUzdeuL37261X1SlR55D+25YAF7LXgJrZxz2mnTMGile+pk3fpBUjVqwoHrZOABElatWdOzL1uevftLxsbudPPsQ//GRMwdO8fG0W0Z8T9//nOmixcueBG7veTFJPDTB/8fCQyuXb9PyLJlY3u7llx9+42r2f6chy3n0nJaquIYQWaZSYUJTKV2CTGlASICU8uKUhFDKTrEVKkqnatcLRNJatdQWCCiFtecSGAAltILMtLPEDAS0m9CAIale0S0Yoh2ericaIDRY2879o2rznzfySto7eLpFLS631Ny5z3/svCiT16+Hz0gafmmtg/JaA+/bHnh69+w6pXv/pMVdPHtE//oWCbg9485etVr3vOejuf55X0/XnjbVVftxzTxB288atXxJ//XFSTc84MfHvutL9xAArEoDtkhgct52HIukxHBCgsyQSm6mJQBklGAFTEgkMmopCoMhckAGSCSAESgEGlWaw4r2rLsGGgpzZXOBFIUqDRTy6AF6WKFbTm3tV9+LO/j6hK1IsIQE2St/+29J5566j5JxzMJJvOervzS1R8BrmIaWP90up9Oxj6xaEzAmt883fU8d1933YSf24bhkQF2kGefeqbpnszsDOCaSQlczsOWcwKiSQjU4T0ZSKG0mKcIRBOZoiIZGBhJqioJozNZCnpqkzYkk0gkCAaxFLTaJRWljfsYkdA2aEVSgKQ7AkYg0ppz7mf3rzz6sre894wrbv3mtUwCSdeaGd0CF7CaXnPe1NS5RgxRHfZgGRBj3Dhg87AYKQrbOLAYCWYErPWeKbGFRbAWS3AGIFD7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"},28453:(A,e,a)=>{a.d(e,{R:()=>s,x:()=>c});var t=a(96540);const n={},g=t.createContext(n);function s(A){const e=t.useContext(g);return t.useMemo((function(){return"function"==typeof A?A(e):{...e,...A}}),[e,A])}function c(A){let e;return e=A.disableParentContext?"function"==typeof A.components?A.components(n):A.components||n:s(A.components),t.createElement(g.Provider,{value:e},A.children)}},37711:A=>{A.exports=JSON.parse('{"permalink":"/playhack-make-a-game-get-featured","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-10-20-playhack-make-a-game-get-featured.md","source":"@site/blog/2014-10-20-playhack-make-a-game-get-featured.md","title":"PLAYHACK - Make a game, get featured","description":"PLAYHACK","date":"2014-10-20T00:00:00.000Z","tags":[],"readingTime":1.54,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playhack-make-a-game-get-featured","title":"PLAYHACK - Make a game, get featured"},"unlisted":false,"prevItem":{"title":"PLAYHACK November - Adding Tank Controls","permalink":"/playhack-november-adding-tank-controls"},"nextItem":{"title":"HTML5 Game Development Community Meet Up","permalink":"/html5-game-development-community-meet-up"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/1b6a12d2.42167218.js b/assets/js/1b6a12d2.3ff7792c.js
similarity index 95%
rename from assets/js/1b6a12d2.42167218.js
rename to assets/js/1b6a12d2.3ff7792c.js
index b0820c809..03ecd6575 100644
--- a/assets/js/1b6a12d2.42167218.js
+++ b/assets/js/1b6a12d2.3ff7792c.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[72918],{2826:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var o=n(74015),a=n(74848),i=n(28453);const r={authors:"paulo",slug:"webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777",title:"Building WebAR Experiences - Developer Spotlight with Visionaries777",tags:["ar","webxr","spotlight"]},s=void 0,h={authorsImageUrls:[void 0]},l=[];function d(e){const t={a:"a",img:"img",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:(0,a.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(10677).A+"",children:(0,a.jsx)(t.img,{alt:"Nissan AR",src:n(67111).A+"",width:"1024",height:"568"})})}),"\n",(0,a.jsx)(t.p,{children:"Welcome to the second installment of Developer Spotlight! A series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web."}),"\n",(0,a.jsxs)(t.p,{children:["Today we are excited to be joined by Frantz Lasorne, co-founder of ",(0,a.jsx)(t.a,{href:"https://www.vz777.com/",children:"Visionaries777"}),"."]}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Hi! Let's get started. Firstly, welcome to the developer spotlight! Frantz, if you could just tell me a little bit about yourself and your team and your studio."})}),"\n",(0,a.jsx)(t.p,{children:"My name is Frantz and I'm the co-founder of Visionaries777. Actually, we [founders] are three. We started as two French guys. We studied together in France; Interaction Design, and then we created this company about 10 years ago in Hong Kong."}),"\n",(0,a.jsx)(t.p,{children:"[We currently employ] Around 35 people. We've been working on AR since 2010. It's our main focus. Within the realm of AR, we are involved in 3D real time AR, and all sorts of XR applications."}),"\n",(0,a.jsx)(t.p,{children:"Me and my business partner were working at Lego in Denmark before, so we started to work on AR back then in the R&D department. We helped Lego bridge the physical and digital to create hybrid play experiences."}),"\n",(0,a.jsx)(t.p,{children:"Afterwards, we left Lego and started our own company. Lego hired us as consultants to keep working for them for some time. In the early days, we did a lot of collaborations for marketing and promotional events using AR."}),"\n",(0,a.jsx)(t.p,{children:"Nowadays, the things we work on are more industrial-focused; automotive or luxury. AR is now a properly matured product, with WebGL, Web AR experiences, VR and so on."}),"\n",(0,a.jsx)("div",{className:"iframe-container",children:(0,a.jsx)("iframe",{loading:"lazy",width:"560",height:"315",src:"https://www.youtube.com/embed/NnoiJA7UCiY",title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Thank you! I'm curious, why did Visionaries777 choose PlayCanvas?"})}),"\n",(0,a.jsx)(t.p,{children:"Before, we always used Unity 3D for any 3D real time project, because they have a huge compatibility of hardware platforms. It's quite nice. The only platform they are lacking is the web."}),"\n",(0,a.jsx)(t.p,{children:"We were looking around, trying to find what is the best platform to develop WebGL experiences. Then, we saw PlayCanvas, opened the editor, and were surprised how familiar it was for us. I think the people who designed the PlayCanvas editor knew Unity and got inspired in terms of the menu and layout. It's very similar to the way [Unity] works. It's just that it's an editor on the web rather than a desktop application. So for us, it was very easy to do the jump."}),"\n",(0,a.jsx)(t.p,{children:"So far we've been really happy with all the engine capabilities, the loading, how lightweight it is, et cetera. For us, it's the best platform for developing web experiences."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(38370).A+"",children:(0,a.jsx)(t.img,{alt:"Husqvarna",src:n(7024).A+"",width:"1600",height:"884"})})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Awesome! So, were there any initial challenges that you guys faced? How did you guys end up overcoming them?"})}),"\n",(0,a.jsx)(t.p,{children:"In terms of challenges? I think mostly the model optimizations; how to get the WebGL experience as small as possible, but retaining maximum visual quality. Most of our clients are either automotive brands or luxury brands, so they are concerned about the product that you are looking at on the screen. It's pointless to show a product that you can see the rough edges of. They won't like it in the end."}),"\n",(0,a.jsx)(t.p,{children:"That was our struggle at the beginning - to try and find the right balance of optimizing enough, but not too much, and be happy with loading time. So it took some trying to get this right and find the right compromise."}),"\n",(0,a.jsx)(t.p,{children:"Right now, with our current approach and the tools in our pipeline, we\u2019re quite happy. And it's also why we work with Cartier and are now doing all these products on their websites."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(61696).A+"",children:(0,a.jsx)(t.img,{alt:"Watch",src:n(53710).A+"",width:"1600",height:"884"})})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"That's very interesting. Visionaries777 has worked on several Web AR experiences. Can you tell me how important you think Web AR is today?"})}),"\n",(0,a.jsx)(t.p,{children:"It's very important - but we are back to the same problem that we had in the early 2010s, when we relied on markers for tracking. Now with where we are in WebAR we are still very limited. You need something like an image marker, or a floor with a world target, but it's not as stable as if you use AR Kit or AR Core in a native Unity app."}),"\n",(0,a.jsx)(t.p,{children:"With a standalone Unity application with ARKit and ARCore it's mind blowing what you can do. There's barely any drift, it's super accurate. With web you're still constrained. Tracking is not perfect. There's a lot of drift. So I think the applications we see with the present state of tech are limited, experiences are considered a bit gimmicky. It's getting there, but it still needs to grow."}),"\n",(0,a.jsx)(t.p,{children:"But at the end of the day, for marketing initiatives, no one wants to install an ad app on their smartphone as a user, as a consumer. You don't want to install a BMW app just to uninstall it three days later because you're done playing around."}),"\n",(0,a.jsx)(t.p,{children:"These sorts of experiences were fine 10 years ago on an iPhone, but now people have moved on, and have different mindsets - things should be accessible through a web browser directly, not through an app. If it's inside an app, it has to be inside Snapchat, inside Instagram, or inside an app that has more to it than just one AR experience."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(50911).A+"",children:(0,a.jsx)(t.img,{alt:"BMW",src:n(45829).A+"",width:"1024",height:"563"})})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Extending a bit from that question, why do you think that the clients you work with want Web AR in their experiences?"})}),"\n",(0,a.jsx)(t.p,{children:"Augmented reality has always been exciting for brands to show a product in 3D and also integrate it into [customers\u2019] homes or their driveway. It\u2019s quite appealing for a brand, marketing-wise. Then, for consumers, it's something new, it's fun. You get closer to the product."}),"\n",(0,a.jsx)(t.p,{children:"It\u2019s key to reduce friction."}),"\n",(0,a.jsx)(t.p,{children:"You don't have to install things anymore. You download some assets in your web browser, but it's more transparent than going into the store and searching for the app and downloading it."}),"\n",(0,a.jsx)(t.p,{children:"Brands are definitely interested in WebAR for these reasons, so AR will keep growing. It brings a lot of value. You can try a car in your driveway or you can try a watch on your wrist."}),"\n",(0,a.jsx)(t.p,{children:"eCommerce in a more immersive way is really the next generation for eCommerce experiences."}),"\n",(0,a.jsx)("div",{className:"iframe-container",children:(0,a.jsx)("iframe",{loading:"lazy",width:"560",height:"315",src:"https://www.youtube.com/embed/eGx9gFHWu_4",title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"When you're building your Web AR experiences, what features does PlayCanvas provide that you think were most helpful?"})}),"\n",(0,a.jsx)(t.p,{children:"I think the true value of PlayCanvas is really how they are keeping up to date with all the WebGL standards, improving materials, improving compression, improving loading and so on. And their UI is very easy to use."}),"\n",(0,a.jsx)(t.p,{children:"When you import your model, it gets converted to the GLB format. It makes it more lightweight, and you don't need to pre-export it as GLB."}),"\n",(0,a.jsx)(t.p,{children:"On the programming side, it's just JavaScript. You can do whatever you want. It doesn't have any preset for you aside from an orbit camera, but that's not really important. Anyone can build more."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Cool! So, how would you say that building an HTML5 or a WebGL experience differs from developing a native experience or a native application?"})}),"\n",(0,a.jsx)(t.p,{children:"You have to always concern yourself with the loading. In some cases, when you develop a web experience, you have to load something quickly for the user to play with right away. Then the model and the rest gets loaded progressively afterwards. Let's say you have a car and this car has variants with different wheels, roofs, and so on. All these elements need to be loaded, but you shouldn't load everything at once. Otherwise, the download would be huge."}),"\n",(0,a.jsx)(t.p,{children:"I think that's one of the main differences compared to designing a native application, aside from UX/UI, because you also need to be concerned about the browser for web experiences. Are you using it in portrait? On a desktop? Do you need to embed it into an iframe? Is it going to be full screen?"}),"\n",(0,a.jsx)(t.p,{children:"Those are questions that are quite different from a standalone application where you don't need to concern yourself about the surroundings of the app."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"So next up; we went a bit over this in one of the previous questions I asked. You explained how you guys use some of the features of the editor, but is there any feature PlayCanvas provides that is the team's favorite?"})}),"\n",(0,a.jsx)(t.p,{children:"To me it's more that we can collaborate. The collaboration aspect of PlayCanvas is quite nice because you have one project and anyone can access it from their desktop machine on the web."}),"\n",(0,a.jsx)(t.p,{children:"And you can, as an artist, populate the scene with the assets. Then, the developer can work with it. In parallel. And you can have someone to check things, maybe not edit anything, but do quality control. The collaboration aspect is one of the best features I would say that makes [PlayCanvas] so nice to work with."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"As part of the interview, but also as a feedback exercise, what is a PlayCanvas feature that would be at the top of your wishlist?"})}),"\n",(0,a.jsx)(t.p,{children:"It would be great if the PlayCanvas editor had a feature to assign different texture resolutions for different platforms (mobile or desktop), similarly to how Unity does it for different devices. It would make it so much easier to manage rather than doing it with code and tagging etc."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Thanks for sharing the feedback! Going back to another question, how do you see HTML5 and web experiences evolving over the next few years?"})}),"\n",(0,a.jsx)(t.p,{children:"I think it will grow. We see two things at the moment, WebGL experiences and cloud streaming, which is not HTML or WebGL at all. Some brands will choose either doing a WebGL configurator, or a cloud streaming configurator. Those are two different approaches. I have a tendency to prefer WebGL because you have a much more crisp image."}),"\n",(0,a.jsx)(t.p,{children:"Also, once the experience is loaded, it's much more responsive to commands. You're not constrained by latency of streaming and video glitches. Those are things that put me off when I do classroom experiences."}),"\n",(0,a.jsx)(t.p,{children:"So I think WebGL will continue, especially right now with the whole discussion around the metaverse, and when we talk about the necessary file transmission. GLTF, USDZ, USD - those files can be translated from one platform to another, so I think there's a lot of potential for these."}),"\n",(0,a.jsx)(t.p,{children:"I think the metaverse will most likely be built in WebGL rather than in cloud streaming, but I could be wrong."}),"\n",(0,a.jsx)(t.p,{children:"Either way, I believe that in the end, it's very important for brands to start digitizing all their assets. For example, Cartier chooses to have a WebGL viewer and recreate every single one of their products into GLB formats. I think it's quite smart because once you have them, you can reuse them anywhere on the web; whether it's in their website, the metaverse or a Snapchat AR filter."}),"\n",(0,a.jsx)(t.p,{children:"I think there's lots of opportunities, and as 5G expands, compression format algorithms get more efficient, things are going to be smaller and we'll be able to build richer experiences on the web. I think there's a long positive future, and cloud streaming is not necessarily going to replace it."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Thank you! Those were all the questions I had. Thank you for your time, Frantz! Is there anything that you would like to promote, a website, a Twitter handle, or a job opening that you would like to share?"})}),"\n",(0,a.jsxs)(t.p,{children:["We have a website purely focused on product configurators, utilizing WebAR: ",(0,a.jsx)(t.a,{href:"https://urldefense.proofpoint.com/v2/url?u=https-3A__vzion.vz777.com_&d=DwMFaQ&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=--LiNgtoHfPjPnEKFLeJr9qV3N1vxgN4hWV_E42dYVM&m=4HZIRF6gtBKtqaTzmjaHNw4pPJapodEg3V3LBHK9-GNaqmOuut91GXnHWxe2Fgtl&s=htV-gbUikESO1vAeS_POhpq9Oa1cn3ZvTVyvWl8IdJ8&e=",children:"https://vzion.vz777.com/"})]}),"\n",(0,a.jsxs)(t.p,{children:["And a main website too, where we show all of our work: ",(0,a.jsx)(t.a,{href:"https://urldefense.proofpoint.com/v2/url?u=https-3A__www.vz777.com_&d=DwMFaQ&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=--LiNgtoHfPjPnEKFLeJr9qV3N1vxgN4hWV_E42dYVM&m=4HZIRF6gtBKtqaTzmjaHNw4pPJapodEg3V3LBHK9-GNaqmOuut91GXnHWxe2Fgtl&s=UWchHTrNjGrXrgGWEUt5HCYcBhGIj23pNTzYXbIfroo&e=",children:"https://www.vz777.com/"})]}),"\n",(0,a.jsxs)(t.p,{children:["We\u2019re also on twitter! Follow us there: ",(0,a.jsx)(t.a,{href:"https://urldefense.proofpoint.com/v2/url?u=https-3A__twitter.com_visionaries777&d=DwMFaQ&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=--LiNgtoHfPjPnEKFLeJr9qV3N1vxgN4hWV_E42dYVM&m=4HZIRF6gtBKtqaTzmjaHNw4pPJapodEg3V3LBHK9-GNaqmOuut91GXnHWxe2Fgtl&s=M-4EP-U_WCzTsDLiMa7xM5iT-v5n14eLpE3gP90RPBc&e=",children:"https://twitter.com/visionaries777"})]})]})}function c(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},50911:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/files/v777-bmw-80445262e2e58a12dbc7e8d94e893ff0.jpg"},38370:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/files/v777-husqvarna-f2011d5a97b9b1526426d5ffe8680bd7.jpg"},10677:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/files/v777-nissan-ar-2c0b1e1e57e106427b88cc8698cd6bd4.jpg"},61696:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/files/v777-watch-b7181b8c2875451ece01769fe017f514.jpg"},45829:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v777-bmw-80445262e2e58a12dbc7e8d94e893ff0.jpg"},7024:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v777-husqvarna-f2011d5a97b9b1526426d5ffe8680bd7.jpg"},67111:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v777-nissan-ar-2c0b1e1e57e106427b88cc8698cd6bd4.jpg"},53710:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v777-watch-b7181b8c2875451ece01769fe017f514.jpg"},28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>s});var o=n(96540);const a={},i=o.createContext(a);function r(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),o.createElement(i.Provider,{value:t},e.children)}},74015:e=>{e.exports=JSON.parse('{"permalink":"/webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2022-09-28-webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777.md","source":"@site/blog/2022-09-28-webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777.md","title":"Building WebAR Experiences - Developer Spotlight with Visionaries777","description":"Nissan AR","date":"2022-09-28T00:00:00.000Z","tags":[{"inline":true,"label":"ar","permalink":"/tags/ar"},{"inline":true,"label":"webxr","permalink":"/tags/webxr"},{"inline":true,"label":"spotlight","permalink":"/tags/spotlight"}],"readingTime":9.665,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGBCxiefbbUlw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1654615914498?e=1730332800&v=beta&t=430DvI8uuos5obx7BhhHBqhT5TnNTv3q91eOOg6diII","key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777","title":"Building WebAR Experiences - Developer Spotlight with Visionaries777","tags":["ar","webxr","spotlight"]},"unlisted":false,"prevItem":{"title":"glTF Viewer Arrives on Mobile with AR Support","permalink":"/gltf-viewer-arrives-on-mobile-with-ar-support"},"nextItem":{"title":"Porting from Unity to PlayCanvas - Developer Spotlight with Christina Kaliora","permalink":"/porting-from-unity-to-playcanvas-developer-spotlight-with-christina-kaliora"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[72918],{2826:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var o=n(74015),a=n(74848),i=n(28453);const r={authors:"paulo",slug:"webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777",title:"Building WebAR Experiences - Developer Spotlight with Visionaries777",tags:["ar","webxr","spotlight"]},s=void 0,h={authorsImageUrls:[void 0]},l=[];function d(e){const t={a:"a",img:"img",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:(0,a.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(10677).A+"",children:(0,a.jsx)(t.img,{alt:"Nissan AR",src:n(67111).A+"",width:"1024",height:"568"})})}),"\n",(0,a.jsx)(t.p,{children:"Welcome to the second installment of Developer Spotlight! A series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web."}),"\n",(0,a.jsxs)(t.p,{children:["Today we are excited to be joined by Frantz Lasorne, co-founder of ",(0,a.jsx)(t.a,{href:"https://www.vz777.com/",children:"Visionaries777"}),"."]}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Hi! Let's get started. Firstly, welcome to the developer spotlight! Frantz, if you could just tell me a little bit about yourself and your team and your studio."})}),"\n",(0,a.jsx)(t.p,{children:"My name is Frantz and I'm the co-founder of Visionaries777. Actually, we [founders] are three. We started as two French guys. We studied together in France; Interaction Design, and then we created this company about 10 years ago in Hong Kong."}),"\n",(0,a.jsx)(t.p,{children:"[We currently employ] Around 35 people. We've been working on AR since 2010. It's our main focus. Within the realm of AR, we are involved in 3D real time AR, and all sorts of XR applications."}),"\n",(0,a.jsx)(t.p,{children:"Me and my business partner were working at Lego in Denmark before, so we started to work on AR back then in the R&D department. We helped Lego bridge the physical and digital to create hybrid play experiences."}),"\n",(0,a.jsx)(t.p,{children:"Afterwards, we left Lego and started our own company. Lego hired us as consultants to keep working for them for some time. In the early days, we did a lot of collaborations for marketing and promotional events using AR."}),"\n",(0,a.jsx)(t.p,{children:"Nowadays, the things we work on are more industrial-focused; automotive or luxury. AR is now a properly matured product, with WebGL, Web AR experiences, VR and so on."}),"\n",(0,a.jsx)("div",{className:"iframe-container",children:(0,a.jsx)("iframe",{loading:"lazy",width:"560",height:"315",src:"https://www.youtube.com/embed/NnoiJA7UCiY",title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Thank you! I'm curious, why did Visionaries777 choose PlayCanvas?"})}),"\n",(0,a.jsx)(t.p,{children:"Before, we always used Unity 3D for any 3D real time project, because they have a huge compatibility of hardware platforms. It's quite nice. The only platform they are lacking is the web."}),"\n",(0,a.jsx)(t.p,{children:"We were looking around, trying to find what is the best platform to develop WebGL experiences. Then, we saw PlayCanvas, opened the editor, and were surprised how familiar it was for us. I think the people who designed the PlayCanvas editor knew Unity and got inspired in terms of the menu and layout. It's very similar to the way [Unity] works. It's just that it's an editor on the web rather than a desktop application. So for us, it was very easy to do the jump."}),"\n",(0,a.jsx)(t.p,{children:"So far we've been really happy with all the engine capabilities, the loading, how lightweight it is, et cetera. For us, it's the best platform for developing web experiences."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(38370).A+"",children:(0,a.jsx)(t.img,{alt:"Husqvarna",src:n(7024).A+"",width:"1600",height:"884"})})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Awesome! So, were there any initial challenges that you guys faced? How did you guys end up overcoming them?"})}),"\n",(0,a.jsx)(t.p,{children:"In terms of challenges? I think mostly the model optimizations; how to get the WebGL experience as small as possible, but retaining maximum visual quality. Most of our clients are either automotive brands or luxury brands, so they are concerned about the product that you are looking at on the screen. It's pointless to show a product that you can see the rough edges of. They won't like it in the end."}),"\n",(0,a.jsx)(t.p,{children:"That was our struggle at the beginning - to try and find the right balance of optimizing enough, but not too much, and be happy with loading time. So it took some trying to get this right and find the right compromise."}),"\n",(0,a.jsx)(t.p,{children:"Right now, with our current approach and the tools in our pipeline, we\u2019re quite happy. And it's also why we work with Cartier and are now doing all these products on their websites."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(61696).A+"",children:(0,a.jsx)(t.img,{alt:"Watch",src:n(53710).A+"",width:"1600",height:"884"})})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"That's very interesting. Visionaries777 has worked on several Web AR experiences. Can you tell me how important you think Web AR is today?"})}),"\n",(0,a.jsx)(t.p,{children:"It's very important - but we are back to the same problem that we had in the early 2010s, when we relied on markers for tracking. Now with where we are in WebAR we are still very limited. You need something like an image marker, or a floor with a world target, but it's not as stable as if you use AR Kit or AR Core in a native Unity app."}),"\n",(0,a.jsx)(t.p,{children:"With a standalone Unity application with ARKit and ARCore it's mind blowing what you can do. There's barely any drift, it's super accurate. With web you're still constrained. Tracking is not perfect. There's a lot of drift. So I think the applications we see with the present state of tech are limited, experiences are considered a bit gimmicky. It's getting there, but it still needs to grow."}),"\n",(0,a.jsx)(t.p,{children:"But at the end of the day, for marketing initiatives, no one wants to install an ad app on their smartphone as a user, as a consumer. You don't want to install a BMW app just to uninstall it three days later because you're done playing around."}),"\n",(0,a.jsx)(t.p,{children:"These sorts of experiences were fine 10 years ago on an iPhone, but now people have moved on, and have different mindsets - things should be accessible through a web browser directly, not through an app. If it's inside an app, it has to be inside Snapchat, inside Instagram, or inside an app that has more to it than just one AR experience."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(50911).A+"",children:(0,a.jsx)(t.img,{alt:"BMW",src:n(45829).A+"",width:"1024",height:"563"})})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Extending a bit from that question, why do you think that the clients you work with want Web AR in their experiences?"})}),"\n",(0,a.jsx)(t.p,{children:"Augmented reality has always been exciting for brands to show a product in 3D and also integrate it into [customers\u2019] homes or their driveway. It\u2019s quite appealing for a brand, marketing-wise. Then, for consumers, it's something new, it's fun. You get closer to the product."}),"\n",(0,a.jsx)(t.p,{children:"It\u2019s key to reduce friction."}),"\n",(0,a.jsx)(t.p,{children:"You don't have to install things anymore. You download some assets in your web browser, but it's more transparent than going into the store and searching for the app and downloading it."}),"\n",(0,a.jsx)(t.p,{children:"Brands are definitely interested in WebAR for these reasons, so AR will keep growing. It brings a lot of value. You can try a car in your driveway or you can try a watch on your wrist."}),"\n",(0,a.jsx)(t.p,{children:"eCommerce in a more immersive way is really the next generation for eCommerce experiences."}),"\n",(0,a.jsx)("div",{className:"iframe-container",children:(0,a.jsx)("iframe",{loading:"lazy",width:"560",height:"315",src:"https://www.youtube.com/embed/eGx9gFHWu_4",title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"When you're building your Web AR experiences, what features does PlayCanvas provide that you think were most helpful?"})}),"\n",(0,a.jsx)(t.p,{children:"I think the true value of PlayCanvas is really how they are keeping up to date with all the WebGL standards, improving materials, improving compression, improving loading and so on. And their UI is very easy to use."}),"\n",(0,a.jsx)(t.p,{children:"When you import your model, it gets converted to the GLB format. It makes it more lightweight, and you don't need to pre-export it as GLB."}),"\n",(0,a.jsx)(t.p,{children:"On the programming side, it's just JavaScript. You can do whatever you want. It doesn't have any preset for you aside from an orbit camera, but that's not really important. Anyone can build more."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Cool! So, how would you say that building an HTML5 or a WebGL experience differs from developing a native experience or a native application?"})}),"\n",(0,a.jsx)(t.p,{children:"You have to always concern yourself with the loading. In some cases, when you develop a web experience, you have to load something quickly for the user to play with right away. Then the model and the rest gets loaded progressively afterwards. Let's say you have a car and this car has variants with different wheels, roofs, and so on. All these elements need to be loaded, but you shouldn't load everything at once. Otherwise, the download would be huge."}),"\n",(0,a.jsx)(t.p,{children:"I think that's one of the main differences compared to designing a native application, aside from UX/UI, because you also need to be concerned about the browser for web experiences. Are you using it in portrait? On a desktop? Do you need to embed it into an iframe? Is it going to be full screen?"}),"\n",(0,a.jsx)(t.p,{children:"Those are questions that are quite different from a standalone application where you don't need to concern yourself about the surroundings of the app."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"So next up; we went a bit over this in one of the previous questions I asked. You explained how you guys use some of the features of the editor, but is there any feature PlayCanvas provides that is the team's favorite?"})}),"\n",(0,a.jsx)(t.p,{children:"To me it's more that we can collaborate. The collaboration aspect of PlayCanvas is quite nice because you have one project and anyone can access it from their desktop machine on the web."}),"\n",(0,a.jsx)(t.p,{children:"And you can, as an artist, populate the scene with the assets. Then, the developer can work with it. In parallel. And you can have someone to check things, maybe not edit anything, but do quality control. The collaboration aspect is one of the best features I would say that makes [PlayCanvas] so nice to work with."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"As part of the interview, but also as a feedback exercise, what is a PlayCanvas feature that would be at the top of your wishlist?"})}),"\n",(0,a.jsx)(t.p,{children:"It would be great if the PlayCanvas editor had a feature to assign different texture resolutions for different platforms (mobile or desktop), similarly to how Unity does it for different devices. It would make it so much easier to manage rather than doing it with code and tagging etc."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Thanks for sharing the feedback! Going back to another question, how do you see HTML5 and web experiences evolving over the next few years?"})}),"\n",(0,a.jsx)(t.p,{children:"I think it will grow. We see two things at the moment, WebGL experiences and cloud streaming, which is not HTML or WebGL at all. Some brands will choose either doing a WebGL configurator, or a cloud streaming configurator. Those are two different approaches. I have a tendency to prefer WebGL because you have a much more crisp image."}),"\n",(0,a.jsx)(t.p,{children:"Also, once the experience is loaded, it's much more responsive to commands. You're not constrained by latency of streaming and video glitches. Those are things that put me off when I do classroom experiences."}),"\n",(0,a.jsx)(t.p,{children:"So I think WebGL will continue, especially right now with the whole discussion around the metaverse, and when we talk about the necessary file transmission. GLTF, USDZ, USD - those files can be translated from one platform to another, so I think there's a lot of potential for these."}),"\n",(0,a.jsx)(t.p,{children:"I think the metaverse will most likely be built in WebGL rather than in cloud streaming, but I could be wrong."}),"\n",(0,a.jsx)(t.p,{children:"Either way, I believe that in the end, it's very important for brands to start digitizing all their assets. For example, Cartier chooses to have a WebGL viewer and recreate every single one of their products into GLB formats. I think it's quite smart because once you have them, you can reuse them anywhere on the web; whether it's in their website, the metaverse or a Snapchat AR filter."}),"\n",(0,a.jsx)(t.p,{children:"I think there's lots of opportunities, and as 5G expands, compression format algorithms get more efficient, things are going to be smaller and we'll be able to build richer experiences on the web. I think there's a long positive future, and cloud streaming is not necessarily going to replace it."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"Thank you! Those were all the questions I had. Thank you for your time, Frantz! Is there anything that you would like to promote, a website, a Twitter handle, or a job opening that you would like to share?"})}),"\n",(0,a.jsxs)(t.p,{children:["We have a website purely focused on product configurators, utilizing WebAR: ",(0,a.jsx)(t.a,{href:"https://urldefense.proofpoint.com/v2/url?u=https-3A__vzion.vz777.com_&d=DwMFaQ&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=--LiNgtoHfPjPnEKFLeJr9qV3N1vxgN4hWV_E42dYVM&m=4HZIRF6gtBKtqaTzmjaHNw4pPJapodEg3V3LBHK9-GNaqmOuut91GXnHWxe2Fgtl&s=htV-gbUikESO1vAeS_POhpq9Oa1cn3ZvTVyvWl8IdJ8&e=",children:"https://vzion.vz777.com/"})]}),"\n",(0,a.jsxs)(t.p,{children:["And a main website too, where we show all of our work: ",(0,a.jsx)(t.a,{href:"https://urldefense.proofpoint.com/v2/url?u=https-3A__www.vz777.com_&d=DwMFaQ&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=--LiNgtoHfPjPnEKFLeJr9qV3N1vxgN4hWV_E42dYVM&m=4HZIRF6gtBKtqaTzmjaHNw4pPJapodEg3V3LBHK9-GNaqmOuut91GXnHWxe2Fgtl&s=UWchHTrNjGrXrgGWEUt5HCYcBhGIj23pNTzYXbIfroo&e=",children:"https://www.vz777.com/"})]}),"\n",(0,a.jsxs)(t.p,{children:["We\u2019re also on twitter! Follow us there: ",(0,a.jsx)(t.a,{href:"https://urldefense.proofpoint.com/v2/url?u=https-3A__twitter.com_visionaries777&d=DwMFaQ&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=--LiNgtoHfPjPnEKFLeJr9qV3N1vxgN4hWV_E42dYVM&m=4HZIRF6gtBKtqaTzmjaHNw4pPJapodEg3V3LBHK9-GNaqmOuut91GXnHWxe2Fgtl&s=M-4EP-U_WCzTsDLiMa7xM5iT-v5n14eLpE3gP90RPBc&e=",children:"https://twitter.com/visionaries777"})]})]})}function c(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},50911:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/files/v777-bmw-80445262e2e58a12dbc7e8d94e893ff0.jpg"},38370:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/files/v777-husqvarna-f2011d5a97b9b1526426d5ffe8680bd7.jpg"},10677:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/files/v777-nissan-ar-2c0b1e1e57e106427b88cc8698cd6bd4.jpg"},61696:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/files/v777-watch-b7181b8c2875451ece01769fe017f514.jpg"},45829:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v777-bmw-80445262e2e58a12dbc7e8d94e893ff0.jpg"},7024:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v777-husqvarna-f2011d5a97b9b1526426d5ffe8680bd7.jpg"},67111:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v777-nissan-ar-2c0b1e1e57e106427b88cc8698cd6bd4.jpg"},53710:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v777-watch-b7181b8c2875451ece01769fe017f514.jpg"},28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>s});var o=n(96540);const a={},i=o.createContext(a);function r(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),o.createElement(i.Provider,{value:t},e.children)}},74015:e=>{e.exports=JSON.parse('{"permalink":"/webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2022-09-28-webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777.md","source":"@site/blog/2022-09-28-webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777.md","title":"Building WebAR Experiences - Developer Spotlight with Visionaries777","description":"Nissan AR","date":"2022-09-28T00:00:00.000Z","tags":[{"inline":true,"label":"ar","permalink":"/tags/ar"},{"inline":true,"label":"webxr","permalink":"/tags/webxr"},{"inline":true,"label":"spotlight","permalink":"/tags/spotlight"}],"readingTime":9.665,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777","title":"Building WebAR Experiences - Developer Spotlight with Visionaries777","tags":["ar","webxr","spotlight"]},"unlisted":false,"prevItem":{"title":"glTF Viewer Arrives on Mobile with AR Support","permalink":"/gltf-viewer-arrives-on-mobile-with-ar-support"},"nextItem":{"title":"Porting from Unity to PlayCanvas - Developer Spotlight with Christina Kaliora","permalink":"/porting-from-unity-to-playcanvas-developer-spotlight-with-christina-kaliora"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/1f8c75ef.c458644f.js b/assets/js/1f8c75ef.04f0afb8.js
similarity index 91%
rename from assets/js/1f8c75ef.c458644f.js
rename to assets/js/1f8c75ef.04f0afb8.js
index 404333d00..5f79e8974 100644
--- a/assets/js/1f8c75ef.c458644f.js
+++ b/assets/js/1f8c75ef.04f0afb8.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[84812],{90165:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>s,metadata:()=>n,toc:()=>h});var n=a(11883),i=a(74848),o=a(28453);const s={authors:"christy",slug:"meet-the-playcanvas-team-vaios-kalpias-illias",title:"Meet the PlayCanvas team: Vaios Kalpias-Illias",tags:["team"]},r=void 0,l={authorsImageUrls:[void 0]},h=[{value:"The Quick Fire round (this is where things get a little interesting)",id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",level:4}];function d(e){const t={blockquote:"blockquote",h4:"h4",img:"img",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Vaios",src:a(78129).A+"",width:"640",height:"427"})}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:'"I used to play basketball. Before all this, I considered doing it for a living."'}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Vaios comes from Athens, Greece (if his name wasn't giving anything away) and he is a Senior Engineer here at PlayCanvas."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How did you get into the video games industry?"})}),"\n",(0,i.jsx)(t.p,{children:"I wanted to get into the video games industry since I was a teenager. So I studied Computer Science at the University of Piraeus where I researched everything I could about graphics and game development and then I got an MSE in Computer Science from the University Of Pennsylvania. I was very fortunate to get a job as a Junior Programmer at Sony Computer Entertainment Europe, where I met Dave and Will and I've been working on games and game related tools ever since!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Can you briefly describe your role at PlayCanvas?"})}),"\n",(0,i.jsx)(t.p,{children:"My work at PlayCanvas includes implementing and documenting new features for the Engine, the Designer and the backend, improving user workflows, fixing bugs and creating game demos whenever I can. We're a small team so we all contribute our ideas of what we should be working on based on our experience working on other engines and games."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"What is your favorite aspect of PlayCanvas' service?"})}),"\n",(0,i.jsx)(t.p,{children:"The fact that I can work on my game anywhere from any device. I'm not limited by the operating system and I don't have to worry about source control or where to store all my assets. Everything is on the cloud and I can instantly share my work with others or invite them to my project to work with me, without going through the whole process of downloading and installing tools first."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Where do you see web based gaming in the future?"})}),"\n",(0,i.jsx)(t.p,{children:"I think game development is moving towards people working together from all around the world. This used to be a big barrier before - for example, as a programmer with not a lot of artistic talent, I was limited to downloading free models and textures from the Internet. If I wanted to make something unique and pretty I had to find an artist. Then I would have to give that artist access to some repository and explain to them how the whole source control thing works. The artist would have to compile and run the game in their machine or I would have to be there physically to do it for them. You can see where this is going... With PlayCanvas you simply don't think about that stuff anymore. PlayCanvas empowers people from all around the world to work with whomever they want, instantly."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How is PlayCanvas going to change the way people make games?"})}),"\n",(0,i.jsx)(t.p,{children:"One of the main reasons why developers would want to develop games that work in the browser is the fact that their game would be more accessible by everybody. One of the reasons why people avoided making games for the Web was that they were limited to simplistic games that may not have appealed to their taste. I believe that WebGL and game-related web technologies in general have become more and more reliable in every device and as tools get better developers will be empowered to make any kind of game they want. I think that eventually most games will be playable in the browser so PlayCanvas is moving in the right direction."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Can you describe one interesting thing about yourself?"})}),"\n",(0,i.jsx)(t.p,{children:"I used to play basketball during the period between elementary school and university and before all this I considered doing it for a living. I even played in the major leagues for a while! (well I sat on the bench that is...)"}),"\n",(0,i.jsx)(t.h4,{id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",children:"The Quick Fire round (this is where things get a little interesting)"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Zelda or Final fantasy?"})}),"\n",(0,i.jsx)(t.p,{children:"Unfortunately I haven't played either of them!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"COD or Battlefield?"})}),"\n",(0,i.jsx)(t.p,{children:"Same as above! I'm not a big FPS guy."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Mario or Sonic?"})}),"\n",(0,i.jsx)(t.p,{children:"Mario! It was one of the first games I played!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Favorite game of all time?"})}),"\n",(0,i.jsx)(t.p,{children:"Grim Fandango! Viva la revolution!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Greatest Gaming Achievement?"})}),"\n",(0,i.jsx)(t.p,{children:"Finishing Killzone 2 on a single Sunday while sitting on the floor in front of my sofa for the duration of the game."})]})}function c(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},78129:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/team-vaios-2014-1458ad838ad217a4365e9f0d0491b2a3.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>s,x:()=>r});var n=a(96540);const i={},o=n.createContext(i);function s(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(o.Provider,{value:t},e.children)}},11883:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-vaios-kalpias-illias","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-23-meet-the-playcanvas-team-vaios-kalpias-illias.md","source":"@site/blog/2014-06-23-meet-the-playcanvas-team-vaios-kalpias-illias.md","title":"Meet the PlayCanvas team: Vaios Kalpias-Illias","description":"Vaios","date":"2014-06-23T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":3.46,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-vaios-kalpias-illias","title":"Meet the PlayCanvas team: Vaios Kalpias-Illias","tags":["team"]},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Maksims Mihejevs","permalink":"/meet-the-playcanvas-team-maksims-mihejevs"},"nextItem":{"title":"PlayCanvas Update 20/06/14","permalink":"/playcanvas-update-200614"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[84812],{90165:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>s,metadata:()=>n,toc:()=>h});var n=a(11883),i=a(74848),o=a(28453);const s={authors:"christy",slug:"meet-the-playcanvas-team-vaios-kalpias-illias",title:"Meet the PlayCanvas team: Vaios Kalpias-Illias",tags:["team"]},r=void 0,l={authorsImageUrls:[void 0]},h=[{value:"The Quick Fire round (this is where things get a little interesting)",id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",level:4}];function d(e){const t={blockquote:"blockquote",h4:"h4",img:"img",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Vaios",src:a(78129).A+"",width:"640",height:"427"})}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:'"I used to play basketball. Before all this, I considered doing it for a living."'}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Vaios comes from Athens, Greece (if his name wasn't giving anything away) and he is a Senior Engineer here at PlayCanvas."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How did you get into the video games industry?"})}),"\n",(0,i.jsx)(t.p,{children:"I wanted to get into the video games industry since I was a teenager. So I studied Computer Science at the University of Piraeus where I researched everything I could about graphics and game development and then I got an MSE in Computer Science from the University Of Pennsylvania. I was very fortunate to get a job as a Junior Programmer at Sony Computer Entertainment Europe, where I met Dave and Will and I've been working on games and game related tools ever since!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Can you briefly describe your role at PlayCanvas?"})}),"\n",(0,i.jsx)(t.p,{children:"My work at PlayCanvas includes implementing and documenting new features for the Engine, the Designer and the backend, improving user workflows, fixing bugs and creating game demos whenever I can. We're a small team so we all contribute our ideas of what we should be working on based on our experience working on other engines and games."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"What is your favorite aspect of PlayCanvas' service?"})}),"\n",(0,i.jsx)(t.p,{children:"The fact that I can work on my game anywhere from any device. I'm not limited by the operating system and I don't have to worry about source control or where to store all my assets. Everything is on the cloud and I can instantly share my work with others or invite them to my project to work with me, without going through the whole process of downloading and installing tools first."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Where do you see web based gaming in the future?"})}),"\n",(0,i.jsx)(t.p,{children:"I think game development is moving towards people working together from all around the world. This used to be a big barrier before - for example, as a programmer with not a lot of artistic talent, I was limited to downloading free models and textures from the Internet. If I wanted to make something unique and pretty I had to find an artist. Then I would have to give that artist access to some repository and explain to them how the whole source control thing works. The artist would have to compile and run the game in their machine or I would have to be there physically to do it for them. You can see where this is going... With PlayCanvas you simply don't think about that stuff anymore. PlayCanvas empowers people from all around the world to work with whomever they want, instantly."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How is PlayCanvas going to change the way people make games?"})}),"\n",(0,i.jsx)(t.p,{children:"One of the main reasons why developers would want to develop games that work in the browser is the fact that their game would be more accessible by everybody. One of the reasons why people avoided making games for the Web was that they were limited to simplistic games that may not have appealed to their taste. I believe that WebGL and game-related web technologies in general have become more and more reliable in every device and as tools get better developers will be empowered to make any kind of game they want. I think that eventually most games will be playable in the browser so PlayCanvas is moving in the right direction."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Can you describe one interesting thing about yourself?"})}),"\n",(0,i.jsx)(t.p,{children:"I used to play basketball during the period between elementary school and university and before all this I considered doing it for a living. I even played in the major leagues for a while! (well I sat on the bench that is...)"}),"\n",(0,i.jsx)(t.h4,{id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",children:"The Quick Fire round (this is where things get a little interesting)"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Zelda or Final fantasy?"})}),"\n",(0,i.jsx)(t.p,{children:"Unfortunately I haven't played either of them!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"COD or Battlefield?"})}),"\n",(0,i.jsx)(t.p,{children:"Same as above! I'm not a big FPS guy."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Mario or Sonic?"})}),"\n",(0,i.jsx)(t.p,{children:"Mario! It was one of the first games I played!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Favorite game of all time?"})}),"\n",(0,i.jsx)(t.p,{children:"Grim Fandango! Viva la revolution!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Greatest Gaming Achievement?"})}),"\n",(0,i.jsx)(t.p,{children:"Finishing Killzone 2 on a single Sunday while sitting on the floor in front of my sofa for the duration of the game."})]})}function c(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},78129:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/team-vaios-2014-1458ad838ad217a4365e9f0d0491b2a3.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>s,x:()=>r});var n=a(96540);const i={},o=n.createContext(i);function s(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(o.Provider,{value:t},e.children)}},11883:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-vaios-kalpias-illias","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-23-meet-the-playcanvas-team-vaios-kalpias-illias.md","source":"@site/blog/2014-06-23-meet-the-playcanvas-team-vaios-kalpias-illias.md","title":"Meet the PlayCanvas team: Vaios Kalpias-Illias","description":"Vaios","date":"2014-06-23T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":3.46,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-vaios-kalpias-illias","title":"Meet the PlayCanvas team: Vaios Kalpias-Illias","tags":["team"]},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Maksims Mihejevs","permalink":"/meet-the-playcanvas-team-maksims-mihejevs"},"nextItem":{"title":"PlayCanvas Update 20/06/14","permalink":"/playcanvas-update-200614"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/2305e98d.b887d7f7.js b/assets/js/2305e98d.234755b2.js
similarity index 93%
rename from assets/js/2305e98d.b887d7f7.js
rename to assets/js/2305e98d.234755b2.js
index 533a6915d..4e68aaa60 100644
--- a/assets/js/2305e98d.b887d7f7.js
+++ b/assets/js/2305e98d.234755b2.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[20865],{42740:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var n=t(93352),s=t(74848),r=t(28453);const o={authors:"christy",slug:"playcanvas-update-51214",title:"PlayCanvas Update 5/12/14"},l=void 0,i={authorsImageUrls:[void 0]},c=[{value:"PlayCanvas Store",id:"playcanvas-store",level:3},{value:"Features",id:"features",level:3},{value:"Cubemap Textures",id:"cubemap-textures",level:4},{value:"Skybox Scene Setting",id:"skybox-scene-setting",level:4},{value:"Material Upgrades",id:"material-upgrades",level:4},{value:"Particles",id:"particles",level:4},{value:"Community",id:"community",level:3},{value:"PLAYHACK December",id:"playhack-december",level:4},{value:"Ludum Dare 31 - DEAL",id:"ludum-dare-31---deal",level:4},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function h(e){const a={a:"a",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:"Its been a year full of huge announcements for us and the first iteration\xa0our Asset Store\xa0is certainly no small matter. From the PlayCanvas Store to a Ludum Dare deal (and everything in between), here's what has happened at PlayCanvas over the past week."}),"\n",(0,s.jsx)(a.h3,{id:"playcanvas-store",children:"PlayCanvas Store"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(1537).A+"",children:(0,s.jsx)(a.img,{alt:"PlayCanvas_Store",src:t(28687).A+"",width:"600",height:"450"})})}),"\n",(0,s.jsxs)(a.p,{children:["Today we ",(0,s.jsx)(a.strong,{children:"launched"})," the ",(0,s.jsx)(a.strong,{children:"Beta version of the PlayCanvas Store!"})," While the current version only has around 40 3D models in total, as the PlayCanvas Store grows we should hope to see thousands of ",(0,s.jsx)(a.strong,{children:"game ready assets"})," become available to our community. ",(0,s.jsxs)(a.strong,{children:["Try the beta for free at\xa0",(0,s.jsx)(a.a,{href:"https://store.playcanvas.com/",children:"https://store.playcanvas.com/"}),"."]})]}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"This preview version of the store features assets from 4 of our great partners:"})}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"http://www.propsplanet.com/",children:"http://www.propsplanet.com/"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"http://gamedevmarket.net/",children:"http://gamedevmarket.net/"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://www.cgtrader.com/",children:"https://www.cgtrader.com/"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://3dmodels-textures.com/",children:"https://3dmodels-textures.com/"})}),"\n"]}),"\n",(0,s.jsxs)(a.p,{children:["Soon we'll be giving all of our PlayCanvas users the chance to become vendors, opening up their assets to over 20,000 PlayCanvas game developers. If you're interested in becoming a vendor for the PlayCanvas store, please get in touch: ",(0,s.jsx)(a.a,{href:"mailto:sales@playcanvas.com",children:"sales@playcanvas.com"}),"."]}),"\n",(0,s.jsx)(a.h3,{id:"features",children:"Features"}),"\n",(0,s.jsx)(a.h4,{id:"cubemap-textures",children:"Cubemap Textures"}),"\n",(0,s.jsxs)(a.p,{children:["We now support cubemap assets. In turn have also deployed a ",(0,s.jsx)(a.strong,{children:"cubemap editor"})," which allows you to create cubemaps by assigning 6 images to each slot of the cube. To ",(0,s.jsx)(a.strong,{children:"make your materials appear reflective"})," you can reference a cubemap, then the material will reflect the sides of the cube (pending that you assign a cubemap to the Reflection section of a material)."]}),"\n",(0,s.jsx)(a.h4,{id:"skybox-scene-setting",children:"Skybox Scene Setting"}),"\n",(0,s.jsxs)(a.p,{children:["We also support Scene Skyboxes.\xa0Before if you wanted to make a skybox you needed an Entity with a skybox component, but now you can ",(0,s.jsx)(a.strong,{children:"create a cubemap"})," and then ",(0,s.jsx)(a.strong,{children:"assign that cubemap to the skybox slot"})," in the Scene Settings."]}),"\n",(0,s.jsx)(a.h4,{id:"material-upgrades",children:"Material Upgrades"}),"\n",(0,s.jsx)(a.p,{children:"We've deployed more and more interesting features to the material editor. Look out for more big things happening here."}),"\n",(0,s.jsx)(a.h4,{id:"particles",children:"Particles"}),"\n",(0,s.jsxs)(a.p,{children:["Our particle system beta is moving forwards. We're getting close to releasing this for everyone. ",(0,s.jsx)(a.a,{href:"mailto:info@playcanvas.com?subject=Particle%20System%20Beta",children:"Get in touch"})," if you'd like to try it out early."]}),"\n",(0,s.jsx)(a.h3,{id:"community",children:"Community"}),"\n",(0,s.jsx)(a.h4,{id:"playhack-december",children:"PLAYHACK December"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.img,{alt:"Santa",src:t(39914).A+"",width:"1113",height:"727"})}),"\n",(0,s.jsxs)(a.p,{children:["We are\xa04 days in to our 2nd game jam and this month you talented developers have a pretty appropriate model to play with. We've\xa0given you Santa and one of his 'normal nosed' reindeer to keep you company this December. ",(0,s.jsxs)(a.strong,{children:["Find out everything you need to know ",(0,s.jsx)(a.a,{href:"https://blog.playcanvas.com/playhack-december-jolly-santa/",children:"here"})]}),"."]}),"\n",(0,s.jsx)(a.h4,{id:"ludum-dare-31---deal",children:"Ludum Dare 31 - DEAL"}),"\n",(0,s.jsxs)(a.p,{children:["If a month seems like too long to make a game. ",(0,s.jsx)(a.strong,{children:"This weekend is Ludum Dare 31"}),", a 48 hour game making competition. It's a great way to get a feel for the full process of imagining, designing, building and then shipping a game."]}),"\n",(0,s.jsxs)(a.p,{children:["We're running a ",(0,s.jsx)(a.strong,{children:"special deal"})," this weekend. If you enter Ludum Dare and complete a game using PlayCanvas we'll give you a ",(0,s.jsx)(a.strong,{children:"FREE PRO 15"})," account for a full year. Can't say fairer than that!"]}),"\n",(0,s.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(a.li,{children:["Like the\xa0",(0,s.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1537:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/files/PlayCanvas_Store-36914f777d740877dc37386f3cb41f79.jpg"},28687:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/PlayCanvas_Store-36914f777d740877dc37386f3cb41f79.jpg"},39914:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/playhack-santa-44751e4b1ac1ee058e934d48dd0453f3.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>o,x:()=>l});var n=t(96540);const s={},r=n.createContext(s);function o(e){const a=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(r.Provider,{value:a},e.children)}},93352:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-51214","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-12-05-playcanvas-update-51214.md","source":"@site/blog/2014-12-05-playcanvas-update-51214.md","title":"PlayCanvas Update 5/12/14","description":"Its been a year full of huge announcements for us and the first iteration\xa0our Asset Store\xa0is certainly no small matter. From the PlayCanvas Store to a Ludum Dare deal (and everything in between), here\'s what has happened at PlayCanvas over the past week.","date":"2014-12-05T00:00:00.000Z","tags":[],"readingTime":2.475,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-51214","title":"PlayCanvas Update 5/12/14"},"unlisted":false,"prevItem":{"title":"PLAYHACK December - Player Character","permalink":"/playhack-december-player-character"},"nextItem":{"title":"PLAYHACK December: Jolly Santa","permalink":"/playhack-december-jolly-santa"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[20865],{42740:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var n=t(93352),s=t(74848),r=t(28453);const o={authors:"christy",slug:"playcanvas-update-51214",title:"PlayCanvas Update 5/12/14"},l=void 0,i={authorsImageUrls:[void 0]},c=[{value:"PlayCanvas Store",id:"playcanvas-store",level:3},{value:"Features",id:"features",level:3},{value:"Cubemap Textures",id:"cubemap-textures",level:4},{value:"Skybox Scene Setting",id:"skybox-scene-setting",level:4},{value:"Material Upgrades",id:"material-upgrades",level:4},{value:"Particles",id:"particles",level:4},{value:"Community",id:"community",level:3},{value:"PLAYHACK December",id:"playhack-december",level:4},{value:"Ludum Dare 31 - DEAL",id:"ludum-dare-31---deal",level:4},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function h(e){const a={a:"a",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:"Its been a year full of huge announcements for us and the first iteration\xa0our Asset Store\xa0is certainly no small matter. From the PlayCanvas Store to a Ludum Dare deal (and everything in between), here's what has happened at PlayCanvas over the past week."}),"\n",(0,s.jsx)(a.h3,{id:"playcanvas-store",children:"PlayCanvas Store"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(1537).A+"",children:(0,s.jsx)(a.img,{alt:"PlayCanvas_Store",src:t(28687).A+"",width:"600",height:"450"})})}),"\n",(0,s.jsxs)(a.p,{children:["Today we ",(0,s.jsx)(a.strong,{children:"launched"})," the ",(0,s.jsx)(a.strong,{children:"Beta version of the PlayCanvas Store!"})," While the current version only has around 40 3D models in total, as the PlayCanvas Store grows we should hope to see thousands of ",(0,s.jsx)(a.strong,{children:"game ready assets"})," become available to our community. ",(0,s.jsxs)(a.strong,{children:["Try the beta for free at\xa0",(0,s.jsx)(a.a,{href:"https://store.playcanvas.com/",children:"https://store.playcanvas.com/"}),"."]})]}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"This preview version of the store features assets from 4 of our great partners:"})}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"http://www.propsplanet.com/",children:"http://www.propsplanet.com/"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"http://gamedevmarket.net/",children:"http://gamedevmarket.net/"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://www.cgtrader.com/",children:"https://www.cgtrader.com/"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://3dmodels-textures.com/",children:"https://3dmodels-textures.com/"})}),"\n"]}),"\n",(0,s.jsxs)(a.p,{children:["Soon we'll be giving all of our PlayCanvas users the chance to become vendors, opening up their assets to over 20,000 PlayCanvas game developers. If you're interested in becoming a vendor for the PlayCanvas store, please get in touch: ",(0,s.jsx)(a.a,{href:"mailto:sales@playcanvas.com",children:"sales@playcanvas.com"}),"."]}),"\n",(0,s.jsx)(a.h3,{id:"features",children:"Features"}),"\n",(0,s.jsx)(a.h4,{id:"cubemap-textures",children:"Cubemap Textures"}),"\n",(0,s.jsxs)(a.p,{children:["We now support cubemap assets. In turn have also deployed a ",(0,s.jsx)(a.strong,{children:"cubemap editor"})," which allows you to create cubemaps by assigning 6 images to each slot of the cube. To ",(0,s.jsx)(a.strong,{children:"make your materials appear reflective"})," you can reference a cubemap, then the material will reflect the sides of the cube (pending that you assign a cubemap to the Reflection section of a material)."]}),"\n",(0,s.jsx)(a.h4,{id:"skybox-scene-setting",children:"Skybox Scene Setting"}),"\n",(0,s.jsxs)(a.p,{children:["We also support Scene Skyboxes.\xa0Before if you wanted to make a skybox you needed an Entity with a skybox component, but now you can ",(0,s.jsx)(a.strong,{children:"create a cubemap"})," and then ",(0,s.jsx)(a.strong,{children:"assign that cubemap to the skybox slot"})," in the Scene Settings."]}),"\n",(0,s.jsx)(a.h4,{id:"material-upgrades",children:"Material Upgrades"}),"\n",(0,s.jsx)(a.p,{children:"We've deployed more and more interesting features to the material editor. Look out for more big things happening here."}),"\n",(0,s.jsx)(a.h4,{id:"particles",children:"Particles"}),"\n",(0,s.jsxs)(a.p,{children:["Our particle system beta is moving forwards. We're getting close to releasing this for everyone. ",(0,s.jsx)(a.a,{href:"mailto:info@playcanvas.com?subject=Particle%20System%20Beta",children:"Get in touch"})," if you'd like to try it out early."]}),"\n",(0,s.jsx)(a.h3,{id:"community",children:"Community"}),"\n",(0,s.jsx)(a.h4,{id:"playhack-december",children:"PLAYHACK December"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.img,{alt:"Santa",src:t(39914).A+"",width:"1113",height:"727"})}),"\n",(0,s.jsxs)(a.p,{children:["We are\xa04 days in to our 2nd game jam and this month you talented developers have a pretty appropriate model to play with. We've\xa0given you Santa and one of his 'normal nosed' reindeer to keep you company this December. ",(0,s.jsxs)(a.strong,{children:["Find out everything you need to know ",(0,s.jsx)(a.a,{href:"https://blog.playcanvas.com/playhack-december-jolly-santa/",children:"here"})]}),"."]}),"\n",(0,s.jsx)(a.h4,{id:"ludum-dare-31---deal",children:"Ludum Dare 31 - DEAL"}),"\n",(0,s.jsxs)(a.p,{children:["If a month seems like too long to make a game. ",(0,s.jsx)(a.strong,{children:"This weekend is Ludum Dare 31"}),", a 48 hour game making competition. It's a great way to get a feel for the full process of imagining, designing, building and then shipping a game."]}),"\n",(0,s.jsxs)(a.p,{children:["We're running a ",(0,s.jsx)(a.strong,{children:"special deal"})," this weekend. If you enter Ludum Dare and complete a game using PlayCanvas we'll give you a ",(0,s.jsx)(a.strong,{children:"FREE PRO 15"})," account for a full year. Can't say fairer than that!"]}),"\n",(0,s.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(a.li,{children:["Like the\xa0",(0,s.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1537:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/files/PlayCanvas_Store-36914f777d740877dc37386f3cb41f79.jpg"},28687:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/PlayCanvas_Store-36914f777d740877dc37386f3cb41f79.jpg"},39914:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/playhack-santa-44751e4b1ac1ee058e934d48dd0453f3.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>o,x:()=>l});var n=t(96540);const s={},r=n.createContext(s);function o(e){const a=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(r.Provider,{value:a},e.children)}},93352:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-51214","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-12-05-playcanvas-update-51214.md","source":"@site/blog/2014-12-05-playcanvas-update-51214.md","title":"PlayCanvas Update 5/12/14","description":"Its been a year full of huge announcements for us and the first iteration\xa0our Asset Store\xa0is certainly no small matter. From the PlayCanvas Store to a Ludum Dare deal (and everything in between), here\'s what has happened at PlayCanvas over the past week.","date":"2014-12-05T00:00:00.000Z","tags":[],"readingTime":2.475,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-51214","title":"PlayCanvas Update 5/12/14"},"unlisted":false,"prevItem":{"title":"PLAYHACK December - Player Character","permalink":"/playhack-december-player-character"},"nextItem":{"title":"PLAYHACK December: Jolly Santa","permalink":"/playhack-december-jolly-santa"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/286b3243.da1c4b9d.js b/assets/js/286b3243.1c0e579e.js
similarity index 60%
rename from assets/js/286b3243.da1c4b9d.js
rename to assets/js/286b3243.1c0e579e.js
index a4f74524b..99fc36c54 100644
--- a/assets/js/286b3243.da1c4b9d.js
+++ b/assets/js/286b3243.1c0e579e.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[925],{7042:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>n,toc:()=>l});var n=a(6418),s=a(74848),o=a(28453);const i={authors:"christy",slug:"playcanvas-update-27-06-14",title:"PlayCanvas Update 27/06/14"},r=void 0,c={authorsImageUrls:[void 0]},l=[];function p(e){const t={a:"a",br:"br",em:"em",img:"img",p:"p",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["No\xa0one ever called us inactive, we've had a busy week and we want to tell you all about it. Here\u2019s a run down on improvements to the engine and what happened behind the scenes at\xa0",(0,s.jsx)(t.a,{href:"https://playcanvas.com/",children:"PlayCanvas"}),"\xa0this week."]}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(13590).A+"",children:(0,s.jsx)(t.img,{alt:"ColorTanks",src:a(64148).A+"",width:"959",height:"496"})}),(0,s.jsx)(t.br,{}),"\n",(0,s.jsx)(t.em,{children:"The award winning colorTanks"})]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},13590:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/tanks-a4736ed86c9cf27c2b3a8de799ad6b2b.jpg"},64148:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/tanks-a4736ed86c9cf27c2b3a8de799ad6b2b.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>r});var n=a(96540);const s={},o=n.createContext(s);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:t},e.children)}},6418:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-27-06-14","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-27-playcanvas-update-27-06-14.md","source":"@site/blog/2014-06-27-playcanvas-update-27-06-14.md","title":"PlayCanvas Update 27/06/14","description":"No\xa0one ever called us inactive, we\'ve had a busy week and we want to tell you all about it. Here\u2019s a run down on improvements to the engine and what happened behind the scenes at\xa0PlayCanvas\xa0this week.","date":"2014-06-27T00:00:00.000Z","tags":[],"readingTime":1.14,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-27-06-14","title":"PlayCanvas Update 27/06/14"},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Dave Evans","permalink":"/meet-the-playcanvas-team-dave-evans"},"nextItem":{"title":"New Custom and Built-in Post Effects","permalink":"/new-custom-and-built-in-post-effects"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[925],{7042:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>n,toc:()=>l});var n=a(6418),s=a(74848),o=a(28453);const r={authors:"christy",slug:"playcanvas-update-27-06-14",title:"PlayCanvas Update 27/06/14"},i=void 0,c={authorsImageUrls:[void 0]},l=[];function d(e){const t={a:"a",br:"br",em:"em",img:"img",p:"p",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["No\xa0one ever called us inactive, we've had a busy week and we want to tell you all about it. Here\u2019s a run down on improvements to the engine and what happened behind the scenes at\xa0",(0,s.jsx)(t.a,{href:"https://playcanvas.com/",children:"PlayCanvas"}),"\xa0this week."]}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(13590).A+"",children:(0,s.jsx)(t.img,{alt:"ColorTanks",src:a(64148).A+"",width:"959",height:"496"})}),(0,s.jsx)(t.br,{}),"\n",(0,s.jsx)(t.em,{children:"The award winning colorTanks"})]})]})}function p(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},13590:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/tanks-a4736ed86c9cf27c2b3a8de799ad6b2b.jpg"},64148:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/tanks-a4736ed86c9cf27c2b3a8de799ad6b2b.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>r,x:()=>i});var n=a(96540);const s={},o=n.createContext(s);function r(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(o.Provider,{value:t},e.children)}},6418:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-27-06-14","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-27-playcanvas-update-27-06-14.md","source":"@site/blog/2014-06-27-playcanvas-update-27-06-14.md","title":"PlayCanvas Update 27/06/14","description":"No\xa0one ever called us inactive, we\'ve had a busy week and we want to tell you all about it. Here\u2019s a run down on improvements to the engine and what happened behind the scenes at\xa0PlayCanvas\xa0this week.","date":"2014-06-27T00:00:00.000Z","tags":[],"readingTime":1.14,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-27-06-14","title":"PlayCanvas Update 27/06/14"},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Dave Evans","permalink":"/meet-the-playcanvas-team-dave-evans"},"nextItem":{"title":"New Custom and Built-in Post Effects","permalink":"/new-custom-and-built-in-post-effects"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/2b276aba.99ccf0b3.js b/assets/js/2b276aba.99ccf0b3.js
new file mode 100644
index 000000000..9cd0e767b
--- /dev/null
+++ b/assets/js/2b276aba.99ccf0b3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[74402],{45295:t=>{t.exports=JSON.parse('{"author":{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy","count":21},"listMetadata":{"permalink":"/authors/christy/authors/3","page":3,"postsPerPage":10,"totalPages":3,"totalCount":21,"previousPage":"/authors/christy/authors/2","blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/2b276aba.bfa3f01a.js b/assets/js/2b276aba.bfa3f01a.js
deleted file mode 100644
index cdb8cbe0d..000000000
--- a/assets/js/2b276aba.bfa3f01a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[74402],{45295:t=>{t.exports=JSON.parse('{"author":{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy","count":21},"listMetadata":{"permalink":"/authors/christy/authors/3","page":3,"postsPerPage":10,"totalPages":3,"totalCount":21,"previousPage":"/authors/christy/authors/2","blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/2c9ff2f1.99528fba.js b/assets/js/2c9ff2f1.6151239b.js
similarity index 67%
rename from assets/js/2c9ff2f1.99528fba.js
rename to assets/js/2c9ff2f1.6151239b.js
index 087f162b0..5224224f6 100644
--- a/assets/js/2c9ff2f1.99528fba.js
+++ b/assets/js/2c9ff2f1.6151239b.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[73812],{71591:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>m});var o=a(95353),n=a(74848),s=a(28453);const i={authors:"paulo",slug:"how-to-make-your-html5-games-awesome",title:"How to make your HTML5 Games Awesome!",tags:["gamedev","html5","webgl"]},r=void 0,l={authorsImageUrls:[void 0]},m=[];function p(e){const t={img:"img",p:"p",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"How To Make Your HTML5 Games Awesome",src:a(48772).A+"",width:"1024",height:"576"})}),"\n",(0,n.jsx)(t.p,{children:"The quality of a video game is often determined by how polished it is. It's the attention to detail and the finishing touches that can make a good game great. In this article, we'll take a look at the importance of polish in game development and how it can significantly enhance the overall experience."})]})}function c(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},48772:(e,t,a)=>{a.d(t,{A:()=>o});const o=a.p+"assets/images/Space-Rocks-thumbnail-6a8e0ba166e3f9693377924f55a7df34.jpeg"},28453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>r});var o=a(96540);const n={},s=o.createContext(n);function i(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(s.Provider,{value:t},e.children)}},95353:e=>{e.exports=JSON.parse('{"permalink":"/how-to-make-your-html5-games-awesome","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","source":"@site/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","title":"How to make your HTML5 Games Awesome!","description":"How To Make Your HTML5 Games Awesome","date":"2023-02-07T00:00:00.000Z","tags":[{"inline":true,"label":"gamedev","permalink":"/tags/gamedev"},{"inline":true,"label":"html5","permalink":"/tags/html-5"},{"inline":true,"label":"webgl","permalink":"/tags/webgl"}],"readingTime":11.64,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGBCxiefbbUlw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1654615914498?e=1730332800&v=beta&t=430DvI8uuos5obx7BhhHBqhT5TnNTv3q91eOOg6diII","key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"how-to-make-your-html5-games-awesome","title":"How to make your HTML5 Games Awesome!","tags":["gamedev","html5","webgl"]},"unlisted":false,"prevItem":{"title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","permalink":"/draco-mesh-compression-arrives-in-the-playcanvas-editor"},"nextItem":{"title":"PlayCanvas now supports Microsoft volumetric video playback","permalink":"/playcanvas-now-supports-microsoft-volumetric-video-playback"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[73812],{71591:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>m});var o=a(95353),n=a(74848),s=a(28453);const i={authors:"paulo",slug:"how-to-make-your-html5-games-awesome",title:"How to make your HTML5 Games Awesome!",tags:["gamedev","html5","webgl"]},r=void 0,l={authorsImageUrls:[void 0]},m=[];function c(e){const t={img:"img",p:"p",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"How To Make Your HTML5 Games Awesome",src:a(48772).A+"",width:"1024",height:"576"})}),"\n",(0,n.jsx)(t.p,{children:"The quality of a video game is often determined by how polished it is. It's the attention to detail and the finishing touches that can make a good game great. In this article, we'll take a look at the importance of polish in game development and how it can significantly enhance the overall experience."})]})}function p(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},48772:(e,t,a)=>{a.d(t,{A:()=>o});const o=a.p+"assets/images/Space-Rocks-thumbnail-6a8e0ba166e3f9693377924f55a7df34.jpeg"},28453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>r});var o=a(96540);const n={},s=o.createContext(n);function i(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(s.Provider,{value:t},e.children)}},95353:e=>{e.exports=JSON.parse('{"permalink":"/how-to-make-your-html5-games-awesome","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","source":"@site/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","title":"How to make your HTML5 Games Awesome!","description":"How To Make Your HTML5 Games Awesome","date":"2023-02-07T00:00:00.000Z","tags":[{"inline":true,"label":"gamedev","permalink":"/tags/gamedev"},{"inline":true,"label":"html5","permalink":"/tags/html-5"},{"inline":true,"label":"webgl","permalink":"/tags/webgl"}],"readingTime":11.64,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"how-to-make-your-html5-games-awesome","title":"How to make your HTML5 Games Awesome!","tags":["gamedev","html5","webgl"]},"unlisted":false,"prevItem":{"title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","permalink":"/draco-mesh-compression-arrives-in-the-playcanvas-editor"},"nextItem":{"title":"PlayCanvas now supports Microsoft volumetric video playback","permalink":"/playcanvas-now-supports-microsoft-volumetric-video-playback"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/2d26d3ff.bcecb885.js b/assets/js/2d26d3ff.0e9390be.js
similarity index 90%
rename from assets/js/2d26d3ff.bcecb885.js
rename to assets/js/2d26d3ff.0e9390be.js
index 8a31f68bd..e11f80a18 100644
--- a/assets/js/2d26d3ff.bcecb885.js
+++ b/assets/js/2d26d3ff.0e9390be.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[60006],{98414:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>n,toc:()=>h});var n=t(56287),s=t(74848),r=t(28453);const i={authors:"christy",slug:"meet-the-playcanvas-team-dave-evans",title:"Meet the PlayCanvas team: Dave Evans",tags:["team"]},o=void 0,l={authorsImageUrls:[void 0]},h=[{value:"The Quick Fire round (this is where things get a little interesting)",id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",level:4}];function d(e){const a={a:"a",h4:"h4",img:"img",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:(0,s.jsx)(a.img,{alt:"Dave",src:t(75577).A+"",width:"640",height:"427"})}),"\n",(0,s.jsxs)(a.p,{children:["Next up is PlayCanvas'\xa0Chief Technical Officer who shares his name with beanie clad U2 Guitarist 'The Edge', ",(0,s.jsx)(a.a,{href:"https://twitter.com/daredevildave",children:"Dave Evans"}),". Dave grew up just outside of Cambridge in Duxford where he says he was regularly dive-bombed by old planes from the nearby Imperial war Museum."]}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"How did you get into the video games industry?"})}),"\n",(0,s.jsx)(a.p,{children:"I started writing games when I was around 13-14. Learning to program in C on a Mac LC II, which is not a great introduction to programming. Then I didn't do anything for a few years and got back into it at my last year at Oxford University where me and a friend wrote a game about a skateboarding monkey called Stunt Monkey."}),"\n",(0,s.jsx)(a.p,{children:"When it came to applying for jobs after university I fell into game development as it was the first job I applied for. I worked at Rebellion in Oxford for a couple of years on Gameboy Advance and PlayStation 2 titles. Then I moved to London where I worked for Sony for about 7 years. During this time I made the change from AI/gameplay programmer to Tools programmer."}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Can you briefly describe your role at PlayCanvas?"})}),"\n",(0,s.jsxs)(a.p,{children:["I'm the CTO, which is a grand title for a small team. But basically I make sure that the development of the PlayCanvas tools and engine are all on track. Making sure all the programmers have stuff to do along with making sure what they are doing makes sense for ",(0,s.jsx)(a.a,{href:"https://playcanvas.com",children:"PlayCanvas"})," in the longer term (i.e. it'll scale as we grow, it's maintainable for the future, etc). I try and get a bit of coding done most days, but that's not always possible. Finally, along with the rest of the team, I'm supporting all our users to make sure they are happy and productive."]}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Favorite aspect of PlayCanvas' service?"})}),"\n",(0,s.jsx)(a.p,{children:"The speed at which you can prototype a game idea and share it with other people"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"How is PlayCanvas changing the way people make games?"})}),"\n",(0,s.jsxs)(a.p,{children:["Online communities are massive accelerators where people can learn new skills and create new things. The ",(0,s.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas community"})," is built around our tools and we can already see it bringing together game developers from all over the world."]}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Where do you see web-based gaming in the future?"})}),"\n",(0,s.jsx)(a.p,{children:"Web-based gaming is the future! If there is one thing you can be certain of, it's that every device released in the future, from phone, to TV, to something we haven't thought of yet, will have have a web browser. And we're right on the brink, as with PlayCanvas and WebGL you can now create great looking games to play on any of these machines."}),"\n",(0,s.jsx)(a.h4,{id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",children:"The Quick Fire round (this is where things get a little interesting)"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Zelda or Final fantasy?"})}),"\n",(0,s.jsx)(a.p,{children:"I've only ever played FF7, so I guess that?"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"COD or Battlefield?"})}),"\n",(0,s.jsx)(a.p,{children:"COD"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Mario or Sonic?"})}),"\n",(0,s.jsx)(a.p,{children:"Mario"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Favorite game of all time?"})}),"\n",(0,s.jsxs)(a.p,{children:["That's a tough one... ",(0,s.jsx)(a.a,{href:"https://en.wikipedia.org/wiki/Monkey_Island_(series)",children:"Monkey Island"})," or Multiplayer Halo."]})]})}function c(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},75577:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/team-dave-2014-e6f57df9fc5663e08e0c74f3189193c1.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>o});var n=t(96540);const s={},r=n.createContext(s);function i(e){const a=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(r.Provider,{value:a},e.children)}},56287:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-dave-evans","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-27-meet-the-playcanvas-team-dave-evans.md","source":"@site/blog/2014-06-27-meet-the-playcanvas-team-dave-evans.md","title":"Meet the PlayCanvas team: Dave Evans","description":"Dave","date":"2014-06-27T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":2.45,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-dave-evans","title":"Meet the PlayCanvas team: Dave Evans","tags":["team"]},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Kevin Rooney","permalink":"/meet-the-playcanvas-team-kevin-rooney"},"nextItem":{"title":"PlayCanvas Update 27/06/14","permalink":"/playcanvas-update-27-06-14"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[60006],{98414:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>n,toc:()=>h});var n=t(56287),s=t(74848),r=t(28453);const i={authors:"christy",slug:"meet-the-playcanvas-team-dave-evans",title:"Meet the PlayCanvas team: Dave Evans",tags:["team"]},o=void 0,l={authorsImageUrls:[void 0]},h=[{value:"The Quick Fire round (this is where things get a little interesting)",id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",level:4}];function d(e){const a={a:"a",h4:"h4",img:"img",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:(0,s.jsx)(a.img,{alt:"Dave",src:t(75577).A+"",width:"640",height:"427"})}),"\n",(0,s.jsxs)(a.p,{children:["Next up is PlayCanvas'\xa0Chief Technical Officer who shares his name with beanie clad U2 Guitarist 'The Edge', ",(0,s.jsx)(a.a,{href:"https://twitter.com/daredevildave",children:"Dave Evans"}),". Dave grew up just outside of Cambridge in Duxford where he says he was regularly dive-bombed by old planes from the nearby Imperial war Museum."]}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"How did you get into the video games industry?"})}),"\n",(0,s.jsx)(a.p,{children:"I started writing games when I was around 13-14. Learning to program in C on a Mac LC II, which is not a great introduction to programming. Then I didn't do anything for a few years and got back into it at my last year at Oxford University where me and a friend wrote a game about a skateboarding monkey called Stunt Monkey."}),"\n",(0,s.jsx)(a.p,{children:"When it came to applying for jobs after university I fell into game development as it was the first job I applied for. I worked at Rebellion in Oxford for a couple of years on Gameboy Advance and PlayStation 2 titles. Then I moved to London where I worked for Sony for about 7 years. During this time I made the change from AI/gameplay programmer to Tools programmer."}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Can you briefly describe your role at PlayCanvas?"})}),"\n",(0,s.jsxs)(a.p,{children:["I'm the CTO, which is a grand title for a small team. But basically I make sure that the development of the PlayCanvas tools and engine are all on track. Making sure all the programmers have stuff to do along with making sure what they are doing makes sense for ",(0,s.jsx)(a.a,{href:"https://playcanvas.com",children:"PlayCanvas"})," in the longer term (i.e. it'll scale as we grow, it's maintainable for the future, etc). I try and get a bit of coding done most days, but that's not always possible. Finally, along with the rest of the team, I'm supporting all our users to make sure they are happy and productive."]}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Favorite aspect of PlayCanvas' service?"})}),"\n",(0,s.jsx)(a.p,{children:"The speed at which you can prototype a game idea and share it with other people"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"How is PlayCanvas changing the way people make games?"})}),"\n",(0,s.jsxs)(a.p,{children:["Online communities are massive accelerators where people can learn new skills and create new things. The ",(0,s.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas community"})," is built around our tools and we can already see it bringing together game developers from all over the world."]}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Where do you see web-based gaming in the future?"})}),"\n",(0,s.jsx)(a.p,{children:"Web-based gaming is the future! If there is one thing you can be certain of, it's that every device released in the future, from phone, to TV, to something we haven't thought of yet, will have have a web browser. And we're right on the brink, as with PlayCanvas and WebGL you can now create great looking games to play on any of these machines."}),"\n",(0,s.jsx)(a.h4,{id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",children:"The Quick Fire round (this is where things get a little interesting)"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Zelda or Final fantasy?"})}),"\n",(0,s.jsx)(a.p,{children:"I've only ever played FF7, so I guess that?"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"COD or Battlefield?"})}),"\n",(0,s.jsx)(a.p,{children:"COD"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Mario or Sonic?"})}),"\n",(0,s.jsx)(a.p,{children:"Mario"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"Favorite game of all time?"})}),"\n",(0,s.jsxs)(a.p,{children:["That's a tough one... ",(0,s.jsx)(a.a,{href:"https://en.wikipedia.org/wiki/Monkey_Island_(series)",children:"Monkey Island"})," or Multiplayer Halo."]})]})}function c(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},75577:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/team-dave-2014-e6f57df9fc5663e08e0c74f3189193c1.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>o});var n=t(96540);const s={},r=n.createContext(s);function i(e){const a=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(r.Provider,{value:a},e.children)}},56287:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-dave-evans","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-27-meet-the-playcanvas-team-dave-evans.md","source":"@site/blog/2014-06-27-meet-the-playcanvas-team-dave-evans.md","title":"Meet the PlayCanvas team: Dave Evans","description":"Dave","date":"2014-06-27T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":2.45,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-dave-evans","title":"Meet the PlayCanvas team: Dave Evans","tags":["team"]},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Kevin Rooney","permalink":"/meet-the-playcanvas-team-kevin-rooney"},"nextItem":{"title":"PlayCanvas Update 27/06/14","permalink":"/playcanvas-update-27-06-14"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/2f18c47a.4868ae87.js b/assets/js/2f18c47a.52056222.js
similarity index 90%
rename from assets/js/2f18c47a.4868ae87.js
rename to assets/js/2f18c47a.52056222.js
index 365a670fa..2542681fb 100644
--- a/assets/js/2f18c47a.4868ae87.js
+++ b/assets/js/2f18c47a.52056222.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[6217],{94522:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var s=n(74134),t=n(74848),o=n(28453);const i={authors:"adam",slug:"playcanvas-update-110714",title:"PlayCanvas Update 11/07/14"},r=void 0,l={authorsImageUrls:[void 0]},d=[{value:"New Features and Bug fixes",id:"new-features-and-bug-fixes",level:3},{value:"Develop conference",id:"develop-conference",level:3},{value:"Develop Magazine",id:"develop-magazine",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function c(e){const a={a:"a",br:"br",code:"code",em:"em",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.strong,{children:"Despite\xa0a tide of sickness this week we still have a great list of updates for all you PlayCanvasers!"})," What would be the phrase you use to describe someone who uses PlayCanvas? I don\u2019t know... anyway, the updates for this week."]}),"\n",(0,t.jsx)(a.h3,{id:"new-features-and-bug-fixes",children:"New Features and Bug fixes"}),"\n",(0,t.jsx)(a.p,{children:"Our Engineering team have been busy:"}),"\n",(0,t.jsxs)(a.ul,{children:["\n",(0,t.jsxs)(a.li,{children:["Updates to the Developer Site. We now have full search functionality on ",(0,t.jsx)(a.a,{href:"https://developer.playcanvas.com",children:"developer.playcanvas.com"})," which makes finding what you need much easier.\xa0We've also made the API\xa0reference\xa0a lot nicer to look at."]}),"\n",(0,t.jsx)(a.li,{children:"Improved camera zoom in the Designer: zooming the camera within the PlayCanvas Designer could at times be too slow, depending on where your viewpoint was focused this has now been fixed \u2013 no more slow-down!."}),"\n",(0,t.jsx)(a.li,{children:"Fixed some issues with creating new materials: sometimes the Create Material button in the Designer would be wrongly disabled but this is now, of course, fixed."}),"\n",(0,t.jsx)(a.li,{children:"Creating and selecting materials is now faster."}),"\n",(0,t.jsx)(a.li,{children:"Some CSS fixes in the dashboard."}),"\n",(0,t.jsx)(a.li,{children:"And finally, we fixed some WebGL errors that occurred when the canvas was too small."}),"\n"]}),"\n",(0,t.jsx)(a.p,{children:"Some engine fixes too:"}),"\n",(0,t.jsxs)(a.ul,{children:["\n",(0,t.jsxs)(a.li,{children:["Script attributes of type 'vector' are\xa0now be correctly converted to ",(0,t.jsx)(a.code,{children:"pc.Vec3"})," at runtime"]}),"\n",(0,t.jsx)(a.li,{children:"Light and camera representations\xa0are no longer be shown in the Designer for disabled lights and cameras"}),"\n"]}),"\n",(0,t.jsx)(a.h3,{id:"develop-conference",children:"Develop conference"}),"\n",(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(72563).A+"",children:(0,t.jsx)(a.img,{alt:"Develop Conference",src:n(253).A+"",width:"3264",height:"2448"})}),(0,t.jsx)(a.br,{}),"\n",(0,t.jsx)(a.em,{children:"Looks fancy doesn\u2019t it? You\u2019d think developers were paid as much as footballers... Dave isn\u2019t actually in this picture by the way, so if you\u2019re playing \u2018Where\u2019s Wally\u2019, don\u2019t, it\u2019ll never end."})]}),"\n",(0,t.jsxs)(a.p,{children:["We were incredibly pleased to be nominated for the ",(0,t.jsx)(a.strong,{children:"Technical Innovation Award"})," at the\xa0prestigious ",(0,t.jsx)(a.a,{href:"https://www.developawards.com/",children:"Develop Awards"})," last week. David Evans, CTO and co-founder of PlayCanvas put in an appearance, but sadly, we lost out to Oculus and their Rift. Next year, however, the story will be very different."]}),"\n",(0,t.jsx)(a.h3,{id:"develop-magazine",children:"Develop Magazine"}),"\n",(0,t.jsxs)(a.p,{children:["We have been featured in a double-page spread in the venerable Develop Magazine. In the ",(0,t.jsx)(a.a,{href:"http://www.develop-online.net/magazine/digital-edition",children:"July 2014 issue"})," (issue number 151), our CEO Will Eastcott is interviewed about the unique features of PlayCanvas, our drive to simplify collaboration between game developers and why PlayCanvas went open-source. Check it out!"]}),"\n",(0,t.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,t.jsxs)(a.ul,{children:["\n",(0,t.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,t.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,t.jsxs)(a.li,{children:["Like the\xa0",(0,t.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,t.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,t.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},72563:(e,a,n)=>{n.d(a,{A:()=>s});const s=n.p+"assets/files/Develop-Conference-78a47c802ae106405275464c492839d3.jpg"},253:(e,a,n)=>{n.d(a,{A:()=>s});const s=n.p+"assets/images/Develop-Conference-78a47c802ae106405275464c492839d3.jpg"},28453:(e,a,n)=>{n.d(a,{R:()=>i,x:()=>r});var s=n(96540);const t={},o=s.createContext(t);function i(e){const a=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(o.Provider,{value:a},e.children)}},74134:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-110714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-11-playcanvas-update-110714.md","source":"@site/blog/2014-07-11-playcanvas-update-110714.md","title":"PlayCanvas Update 11/07/14","description":"Despite\xa0a tide of sickness this week we still have a great list of updates for all you PlayCanvasers! What would be the phrase you use to describe someone who uses PlayCanvas? I don\u2019t know... anyway, the updates for this week.","date":"2014-07-11T00:00:00.000Z","tags":[],"readingTime":1.935,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-110714","title":"PlayCanvas Update 11/07/14"},"unlisted":false,"prevItem":{"title":"developer.playcanvas.com is open source","permalink":"/developer-playcanvas-com-is-open-source"},"nextItem":{"title":"Great British Summer Game Jam","permalink":"/great-british-summer-game-jam"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[6217],{94522:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var s=n(74134),t=n(74848),o=n(28453);const i={authors:"adam",slug:"playcanvas-update-110714",title:"PlayCanvas Update 11/07/14"},r=void 0,l={authorsImageUrls:[void 0]},d=[{value:"New Features and Bug fixes",id:"new-features-and-bug-fixes",level:3},{value:"Develop conference",id:"develop-conference",level:3},{value:"Develop Magazine",id:"develop-magazine",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function c(e){const a={a:"a",br:"br",code:"code",em:"em",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.strong,{children:"Despite\xa0a tide of sickness this week we still have a great list of updates for all you PlayCanvasers!"})," What would be the phrase you use to describe someone who uses PlayCanvas? I don\u2019t know... anyway, the updates for this week."]}),"\n",(0,t.jsx)(a.h3,{id:"new-features-and-bug-fixes",children:"New Features and Bug fixes"}),"\n",(0,t.jsx)(a.p,{children:"Our Engineering team have been busy:"}),"\n",(0,t.jsxs)(a.ul,{children:["\n",(0,t.jsxs)(a.li,{children:["Updates to the Developer Site. We now have full search functionality on ",(0,t.jsx)(a.a,{href:"https://developer.playcanvas.com",children:"developer.playcanvas.com"})," which makes finding what you need much easier.\xa0We've also made the API\xa0reference\xa0a lot nicer to look at."]}),"\n",(0,t.jsx)(a.li,{children:"Improved camera zoom in the Designer: zooming the camera within the PlayCanvas Designer could at times be too slow, depending on where your viewpoint was focused this has now been fixed \u2013 no more slow-down!."}),"\n",(0,t.jsx)(a.li,{children:"Fixed some issues with creating new materials: sometimes the Create Material button in the Designer would be wrongly disabled but this is now, of course, fixed."}),"\n",(0,t.jsx)(a.li,{children:"Creating and selecting materials is now faster."}),"\n",(0,t.jsx)(a.li,{children:"Some CSS fixes in the dashboard."}),"\n",(0,t.jsx)(a.li,{children:"And finally, we fixed some WebGL errors that occurred when the canvas was too small."}),"\n"]}),"\n",(0,t.jsx)(a.p,{children:"Some engine fixes too:"}),"\n",(0,t.jsxs)(a.ul,{children:["\n",(0,t.jsxs)(a.li,{children:["Script attributes of type 'vector' are\xa0now be correctly converted to ",(0,t.jsx)(a.code,{children:"pc.Vec3"})," at runtime"]}),"\n",(0,t.jsx)(a.li,{children:"Light and camera representations\xa0are no longer be shown in the Designer for disabled lights and cameras"}),"\n"]}),"\n",(0,t.jsx)(a.h3,{id:"develop-conference",children:"Develop conference"}),"\n",(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(72563).A+"",children:(0,t.jsx)(a.img,{alt:"Develop Conference",src:n(253).A+"",width:"3264",height:"2448"})}),(0,t.jsx)(a.br,{}),"\n",(0,t.jsx)(a.em,{children:"Looks fancy doesn\u2019t it? You\u2019d think developers were paid as much as footballers... Dave isn\u2019t actually in this picture by the way, so if you\u2019re playing \u2018Where\u2019s Wally\u2019, don\u2019t, it\u2019ll never end."})]}),"\n",(0,t.jsxs)(a.p,{children:["We were incredibly pleased to be nominated for the ",(0,t.jsx)(a.strong,{children:"Technical Innovation Award"})," at the\xa0prestigious ",(0,t.jsx)(a.a,{href:"https://www.developawards.com/",children:"Develop Awards"})," last week. David Evans, CTO and co-founder of PlayCanvas put in an appearance, but sadly, we lost out to Oculus and their Rift. Next year, however, the story will be very different."]}),"\n",(0,t.jsx)(a.h3,{id:"develop-magazine",children:"Develop Magazine"}),"\n",(0,t.jsxs)(a.p,{children:["We have been featured in a double-page spread in the venerable Develop Magazine. In the ",(0,t.jsx)(a.a,{href:"http://www.develop-online.net/magazine/digital-edition",children:"July 2014 issue"})," (issue number 151), our CEO Will Eastcott is interviewed about the unique features of PlayCanvas, our drive to simplify collaboration between game developers and why PlayCanvas went open-source. Check it out!"]}),"\n",(0,t.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,t.jsxs)(a.ul,{children:["\n",(0,t.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,t.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,t.jsxs)(a.li,{children:["Like the\xa0",(0,t.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,t.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,t.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},72563:(e,a,n)=>{n.d(a,{A:()=>s});const s=n.p+"assets/files/Develop-Conference-78a47c802ae106405275464c492839d3.jpg"},253:(e,a,n)=>{n.d(a,{A:()=>s});const s=n.p+"assets/images/Develop-Conference-78a47c802ae106405275464c492839d3.jpg"},28453:(e,a,n)=>{n.d(a,{R:()=>i,x:()=>r});var s=n(96540);const t={},o=s.createContext(t);function i(e){const a=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(o.Provider,{value:a},e.children)}},74134:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-110714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-11-playcanvas-update-110714.md","source":"@site/blog/2014-07-11-playcanvas-update-110714.md","title":"PlayCanvas Update 11/07/14","description":"Despite\xa0a tide of sickness this week we still have a great list of updates for all you PlayCanvasers! What would be the phrase you use to describe someone who uses PlayCanvas? I don\u2019t know... anyway, the updates for this week.","date":"2014-07-11T00:00:00.000Z","tags":[],"readingTime":1.935,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-110714","title":"PlayCanvas Update 11/07/14"},"unlisted":false,"prevItem":{"title":"developer.playcanvas.com is open source","permalink":"/developer-playcanvas-com-is-open-source"},"nextItem":{"title":"Great British Summer Game Jam","permalink":"/great-british-summer-game-jam"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/31fb2502.1c6cc84b.js b/assets/js/31fb2502.51f2da57.js
similarity index 97%
rename from assets/js/31fb2502.1c6cc84b.js
rename to assets/js/31fb2502.51f2da57.js
index 4ef28ca25..97774a03b 100644
--- a/assets/js/31fb2502.1c6cc84b.js
+++ b/assets/js/31fb2502.51f2da57.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[99258],{58004:(e,A,n)=>{n.r(A),n.d(A,{assets:()=>l,contentTitle:()=>r,default:()=>g,frontMatter:()=>s,metadata:()=>t,toc:()=>i});var t=n(37711),a=n(74848),o=n(28453);const s={authors:"christy",slug:"playhack-make-a-game-get-featured",title:"PLAYHACK - Make a game, get featured"},r=void 0,l={authorsImageUrls:[void 0]},i=[{value:"How does it work?",id:"how-does-it-work",level:3},{value:"The Model",id:"the-model",level:3},{value:"Judging",id:"judging",level:3},{value:"Featured Winner",id:"featured-winner",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function h(e){const A={a:"a",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(A.p,{children:(0,a.jsx)(A.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(85470).A+"",children:(0,a.jsx)(A.img,{alt:"PLAYHACK",src:n(48184).A+"",width:"603",height:"218"})})}),"\n",(0,a.jsx)(A.p,{children:"Calling all Game Developers!"}),"\n",(0,a.jsx)(A.p,{children:"PlayCanvas\u2019 first ever PLAYHACK is upon us and that can only mean a whole month's worth of fun and some incredible game developing."}),"\n",(0,a.jsx)(A.h3,{id:"how-does-it-work",children:"How does it work?"}),"\n",(0,a.jsx)(A.p,{children:"PLAYHACK starts today! We'll provide you with a 3D model and your mission is to turn it into a game. The only rule: you must use the model somewhere in your game."}),"\n",(0,a.jsx)(A.p,{children:"It works like this:"}),"\n",(0,a.jsxs)(A.ol,{children:["\n",(0,a.jsxs)(A.li,{children:["\n",(0,a.jsx)(A.p,{children:(0,a.jsxs)(A.strong,{children:["Fork ",(0,a.jsx)(A.a,{href:"https://playcanvas.com/project/331485/overview/playhack-nov-14",children:"this month's project"})," into your account"]})}),"\n"]}),"\n",(0,a.jsxs)(A.li,{children:["\n",(0,a.jsx)(A.p,{children:(0,a.jsx)(A.strong,{children:"Use the project and it's contents to build a new game."})}),"\n"]}),"\n",(0,a.jsxs)(A.li,{children:["\n",(0,a.jsx)(A.p,{children:(0,a.jsxs)(A.strong,{children:["Post to your ",(0,a.jsx)(A.a,{href:"https://blog.playcanvas.com/the-devlog-playcanvas-community-feature/",children:"devlog"})," about your game throughout the month"]})}),"\n"]}),"\n",(0,a.jsxs)(A.li,{children:["\n",(0,a.jsx)(A.p,{children:(0,a.jsx)(A.strong,{children:"At the end of the month we'll look through all the projects that were forked from the original."})}),"\n"]}),"\n",(0,a.jsxs)(A.li,{children:["\n",(0,a.jsx)(A.p,{children:(0,a.jsx)(A.strong,{children:"We'll pick our favorite and feature it on the front page of PlayCanvas for everyone to see."})}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(A.h3,{id:"the-model",children:"The Model"}),"\n",(0,a.jsxs)(A.p,{children:["This month you get to build your game around this uber-cool, ",(0,a.jsx)(A.strong,{children:"sci-fi hover tank!"})]}),"\n",(0,a.jsx)(A.p,{children:(0,a.jsx)(A.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(40941).A+"",children:(0,a.jsx)(A.img,{alt:"Tank",src:n(88443).A+"",width:"800",height:"800"})})}),"\n",(0,a.jsxs)(A.p,{children:["Other than incorporating the model your game can be made and presented in any way that you like, whether it be ",(0,a.jsx)(A.strong,{children:"overhead"})," or\xa0",(0,a.jsx)(A.strong,{children:"side-scrolling"}),", ",(0,a.jsx)(A.strong,{children:"shooter"})," or ",(0,a.jsx)(A.strong,{children:"adventure"}),"."]}),"\n",(0,a.jsx)(A.h3,{id:"judging",children:"Judging"}),"\n",(0,a.jsx)(A.p,{children:"The process of judging will be as broad as the rules. You won't be marked on the strength of code, graphics or theme, the winning game will be the project that we enjoy the most. Simple."}),"\n",(0,a.jsxs)(A.p,{children:["We will be holding things down here at HQ during the month long jam by sharing some of the ",(0,a.jsx)(A.strong,{children:"best screen shots"}),", ",(0,a.jsx)(A.strong,{children:"DevLogs"}),"\xa0and ",(0,a.jsx)(A.strong,{children:"general updates"})," of your progress."]}),"\n",(0,a.jsx)(A.h3,{id:"featured-winner",children:"Featured Winner"}),"\n",(0,a.jsxs)(A.p,{children:["On the ",(0,a.jsx)(A.strong,{children:"1st December"})," we will judge your projects and our favorite will be ",(0,a.jsx)(A.strong,{children:"featured"})," on the ",(0,a.jsx)(A.strong,{children:"PlayCanvas front\xa0page"}),"!"]}),"\n",(0,a.jsx)(A.p,{children:(0,a.jsx)(A.a,{href:"https://playcanvas.com/project/331485/overview/playhack-nov-14",children:(0,a.jsx)(A.img,{alt:"Button",src:n(80249).A+"",width:"675",height:"136"})})}),"\n",(0,a.jsx)(A.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,a.jsxs)(A.ul,{children:["\n",(0,a.jsxs)(A.li,{children:["Follow us on Twitter,\xa0",(0,a.jsx)(A.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,a.jsxs)(A.li,{children:["Like the\xa0",(0,a.jsx)(A.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,a.jsxs)(A.li,{children:["Join and start discussions on the\xa0",(0,a.jsx)(A.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function g(e={}){const{wrapper:A}={...(0,o.R)(),...e.components};return A?(0,a.jsx)(A,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},85470:(e,A,n)=>{n.d(A,{A:()=>t});const t=n.p+"assets/files/PLAYHACK_clear-d8f5d7ea24516377332e8b75294e4d49.png"},40941:(e,A,n)=>{n.d(A,{A:()=>t});const t=n.p+"assets/files/tank-fc486c6a4bf11d04afa9e44af5889eea.jpg"},48184:(e,A,n)=>{n.d(A,{A:()=>t});const t="data:image/png;base64,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AsBMIChiAAOkFHYEmIhtw0p5k3sEjEQELCCAECGickUMkRgCDKWgleZEEiIpLCC17utVUaRhgTIwyp3lla6XCkYDIYn6hsbFQOo+j5EIEI1648skpcA1zTQHLdc2cE3PpUP37nNPHtpxQct52HJOikggMCBHAFSUfi5S0MIAUlWrLclKe7pSSEsHBhlFh7kEyFp1jw8kbJmj3TxBRjAjorRhH4ipjUQpaBkgjAzIEYbKjVARSXqthZ00aHngGvvAwD3v/9BFB5Bw6nvePU2Clvv233zjtzdc+be/YIdwHrackwVkgIiWqlsCBOQGqHtj0dimE7uloEWrwlAQRKOJoS1ByUrVNJGAtVnSNADSSSshUo8Z0URMAQlhmAATMlJtTmBIFkUzdeuL37261X1SlR55D+25YAF7LXgJrZxz2mnTMGile+pk3fpBUjVqwoHrZOABElatWdOzL1uevftLxsbudPPsQ//GRMwdO8fG0W0Z8T9//nOmixcueBG7veTFJPDTB/8fCQyuXb9PyLJlY3u7llx9+42r2f6chy3n0nJaquIYQWaZSYUJTKV2CTGlASICU8uKUhFDKTrEVKkqnatcLRNJatdQWCCiFtecSGAAltILMtLPEDAS0m9CAIale0S0Yoh2ericaIDRY2879o2rznzfySto7eLpFLS631Ny5z3/svCiT16+Hz0gafmmtg/JaA+/bHnh69+w6pXv/pMVdPHtE//oWCbg9485etVr3vOejuf55X0/XnjbVVftxzTxB288atXxJ//XFSTc84MfHvutL9xAArEoDtkhgct52HIukxHBCgsyQSm6mJQBklGAFTEgkMmopCoMhckAGSCSAESgEGlWaw4r2rLsGGgpzZXOBFIUqDRTy6AF6WKFbTm3tV9+LO/j6hK1IsIQE2St/+29J5566j5JxzMJJvOervzS1R8BrmIaWP90up9Oxj6xaEzAmt883fU8d1933YSf24bhkQF2kGefeqbpnszsDOCaSQlczsOWcwKiSQjU4T0ZSKG0mKcIRBOZoiIZGBhJqioJozNZCnpqkzYkk0gkCAaxFLTaJRWljfsYkdA2aEVSgKQ7AkYg0ppz7mf3rzz6sre894wrbv3mtUwCSdeaGd0CF7CaXnPe1NS5RgxRHfZgGRBj3Dhg87AYKQrbOLAYCWYErPWeKbGFRbAWS3AGIFD7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"},80249:(e,A,n)=>{n.d(A,{A:()=>t});const t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqMAAACICAMAAADktRKGAAADAFBMVEXiZwDiaAHiaALiaQPjagXjawbjbAjjbQrjbgzjbw3kbw7kcA/kcRDkchLkchPkcxTkdBXkdBbldRfldRjldxvleBzleB3meyHmeyLmfCPmfCTmfSXmfifnfyjnfynngCrngSvngSzngi3ngi7nhDDohDHohTLohjTohzboiDjpijvpizzpiz3pjD7pjT/pjUDpjkHpjkLqj0PqkETqkUbqkkjqk0nrlEvrlU3rlk/rl1Drl1HrmFLrmFPsmVTsmlXsmlbsm1fsm1jsnFnsnlztnl3toF/toGDtoWHtoWLtomPto2Tto2XupGbupGfupWjupmnupmrup2vup2zuqG3vqW7vqW/vqnDvqnHvq3LvrHPvrHTvrXXvrXbwrnfwr3jwr3nwsHrwsHvwsXzwsn3wsn7ws3/xs4DxtIHxtILxtYPxtoTxtoXxt4bxt4fxuIjyuYnyuYryuovyuozyu43yvI7yvI/yvZDyvZHzvpLzv5Pzv5TzwJXzwJbzwZfzwpjzwpn0w5r0w5v0xJz0xZ30xZ70xp/0xqD0x6H0yKL1yKP1yaT1yaX1yqb1y6f1y6j1zKn1zKr1zav2zqz2zq32z672z6/20LD20bH20bL20rP20rT307X307b31Lf31bj31bn31rr31rv317z32L342L742b/42cD42sH428L428P43MT43MX53cb53sf53sj538r54Mv54cz54c354s764s/649D65NH65NL65dP65dT65tX659b659f76Nj76Nn76dr76tv76tz7693769777N/77eD87eH87uL87uP87+T87+X88Ob88ef88ej88un98ur98+v99Oz99O399e799e/99vD99/H+9/L++PP++PT++fX++vb++vf++/j++/n+/Pr//fv//fz//v3//v7////rlEzqkEXldhnqkUfsnVrsnVvoiDfldhrtn17qk0roiTnjbAnkcRHrlU7jbgvngy/mfibleR7meR/ohTPmeiDohzXiaQTjawfpbQDpijrMVahuAAAOp0lEQVR4XuzS1Q2FQAAAweu/0MPd5UkVBEhmCtivDZf4hucBj+JR8CgeBY+CR/EoeBQ8ikfBo3gUPAoexaPgUTwKHgWP4lHwKHgUj4JH8Sh4FDyK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"},88443:(e,A,n)=>{n.d(A,{A:()=>t});const t=n.p+"assets/images/tank-fc486c6a4bf11d04afa9e44af5889eea.jpg"},28453:(e,A,n)=>{n.d(A,{R:()=>s,x:()=>r});var t=n(96540);const a={},o=t.createContext(a);function s(e){const A=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(A):{...A,...e}}),[A,e])}function r(e){let A;return A=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),t.createElement(o.Provider,{value:A},e.children)}},37711:e=>{e.exports=JSON.parse('{"permalink":"/playhack-make-a-game-get-featured","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-10-20-playhack-make-a-game-get-featured.md","source":"@site/blog/2014-10-20-playhack-make-a-game-get-featured.md","title":"PLAYHACK - Make a game, get featured","description":"PLAYHACK","date":"2014-10-20T00:00:00.000Z","tags":[],"readingTime":1.54,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playhack-make-a-game-get-featured","title":"PLAYHACK - Make a game, get featured"},"unlisted":false,"prevItem":{"title":"PLAYHACK November - Adding Tank Controls","permalink":"/playhack-november-adding-tank-controls"},"nextItem":{"title":"HTML5 Game Development Community Meet Up","permalink":"/html5-game-development-community-meet-up"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[99258],{58004:(e,A,n)=>{n.r(A),n.d(A,{assets:()=>l,contentTitle:()=>r,default:()=>g,frontMatter:()=>s,metadata:()=>t,toc:()=>i});var t=n(37711),a=n(74848),o=n(28453);const s={authors:"christy",slug:"playhack-make-a-game-get-featured",title:"PLAYHACK - Make a game, get featured"},r=void 0,l={authorsImageUrls:[void 0]},i=[{value:"How does it work?",id:"how-does-it-work",level:3},{value:"The Model",id:"the-model",level:3},{value:"Judging",id:"judging",level:3},{value:"Featured Winner",id:"featured-winner",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function h(e){const A={a:"a",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(A.p,{children:(0,a.jsx)(A.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(85470).A+"",children:(0,a.jsx)(A.img,{alt:"PLAYHACK",src:n(48184).A+"",width:"603",height:"218"})})}),"\n",(0,a.jsx)(A.p,{children:"Calling all Game Developers!"}),"\n",(0,a.jsx)(A.p,{children:"PlayCanvas\u2019 first ever PLAYHACK is upon us and that can only mean a whole month's worth of fun and some incredible game developing."}),"\n",(0,a.jsx)(A.h3,{id:"how-does-it-work",children:"How does it work?"}),"\n",(0,a.jsx)(A.p,{children:"PLAYHACK starts today! We'll provide you with a 3D model and your mission is to turn it into a game. The only rule: you must use the model somewhere in your game."}),"\n",(0,a.jsx)(A.p,{children:"It works like this:"}),"\n",(0,a.jsxs)(A.ol,{children:["\n",(0,a.jsxs)(A.li,{children:["\n",(0,a.jsx)(A.p,{children:(0,a.jsxs)(A.strong,{children:["Fork ",(0,a.jsx)(A.a,{href:"https://playcanvas.com/project/331485/overview/playhack-nov-14",children:"this month's project"})," into your account"]})}),"\n"]}),"\n",(0,a.jsxs)(A.li,{children:["\n",(0,a.jsx)(A.p,{children:(0,a.jsx)(A.strong,{children:"Use the project and it's contents to build a new game."})}),"\n"]}),"\n",(0,a.jsxs)(A.li,{children:["\n",(0,a.jsx)(A.p,{children:(0,a.jsxs)(A.strong,{children:["Post to your ",(0,a.jsx)(A.a,{href:"https://blog.playcanvas.com/the-devlog-playcanvas-community-feature/",children:"devlog"})," about your game throughout the month"]})}),"\n"]}),"\n",(0,a.jsxs)(A.li,{children:["\n",(0,a.jsx)(A.p,{children:(0,a.jsx)(A.strong,{children:"At the end of the month we'll look through all the projects that were forked from the original."})}),"\n"]}),"\n",(0,a.jsxs)(A.li,{children:["\n",(0,a.jsx)(A.p,{children:(0,a.jsx)(A.strong,{children:"We'll pick our favorite and feature it on the front page of PlayCanvas for everyone to see."})}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(A.h3,{id:"the-model",children:"The Model"}),"\n",(0,a.jsxs)(A.p,{children:["This month you get to build your game around this uber-cool, ",(0,a.jsx)(A.strong,{children:"sci-fi hover tank!"})]}),"\n",(0,a.jsx)(A.p,{children:(0,a.jsx)(A.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(40941).A+"",children:(0,a.jsx)(A.img,{alt:"Tank",src:n(88443).A+"",width:"800",height:"800"})})}),"\n",(0,a.jsxs)(A.p,{children:["Other than incorporating the model your game can be made and presented in any way that you like, whether it be ",(0,a.jsx)(A.strong,{children:"overhead"})," or\xa0",(0,a.jsx)(A.strong,{children:"side-scrolling"}),", ",(0,a.jsx)(A.strong,{children:"shooter"})," or ",(0,a.jsx)(A.strong,{children:"adventure"}),"."]}),"\n",(0,a.jsx)(A.h3,{id:"judging",children:"Judging"}),"\n",(0,a.jsx)(A.p,{children:"The process of judging will be as broad as the rules. You won't be marked on the strength of code, graphics or theme, the winning game will be the project that we enjoy the most. Simple."}),"\n",(0,a.jsxs)(A.p,{children:["We will be holding things down here at HQ during the month long jam by sharing some of the ",(0,a.jsx)(A.strong,{children:"best screen shots"}),", ",(0,a.jsx)(A.strong,{children:"DevLogs"}),"\xa0and ",(0,a.jsx)(A.strong,{children:"general updates"})," of your progress."]}),"\n",(0,a.jsx)(A.h3,{id:"featured-winner",children:"Featured Winner"}),"\n",(0,a.jsxs)(A.p,{children:["On the ",(0,a.jsx)(A.strong,{children:"1st December"})," we will judge your projects and our favorite will be ",(0,a.jsx)(A.strong,{children:"featured"})," on the ",(0,a.jsx)(A.strong,{children:"PlayCanvas front\xa0page"}),"!"]}),"\n",(0,a.jsx)(A.p,{children:(0,a.jsx)(A.a,{href:"https://playcanvas.com/project/331485/overview/playhack-nov-14",children:(0,a.jsx)(A.img,{alt:"Button",src:n(80249).A+"",width:"675",height:"136"})})}),"\n",(0,a.jsx)(A.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,a.jsxs)(A.ul,{children:["\n",(0,a.jsxs)(A.li,{children:["Follow us on Twitter,\xa0",(0,a.jsx)(A.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,a.jsxs)(A.li,{children:["Like the\xa0",(0,a.jsx)(A.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,a.jsxs)(A.li,{children:["Join and start discussions on the\xa0",(0,a.jsx)(A.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function g(e={}){const{wrapper:A}={...(0,o.R)(),...e.components};return A?(0,a.jsx)(A,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},85470:(e,A,n)=>{n.d(A,{A:()=>t});const t=n.p+"assets/files/PLAYHACK_clear-d8f5d7ea24516377332e8b75294e4d49.png"},40941:(e,A,n)=>{n.d(A,{A:()=>t});const t=n.p+"assets/files/tank-fc486c6a4bf11d04afa9e44af5889eea.jpg"},48184:(e,A,n)=>{n.d(A,{A:()=>t});const t="data:image/png;base64,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AsBMIChiAAOkFHYEmIhtw0p5k3sEjEQELCCAECGickUMkRgCDKWgleZEEiIpLCC17utVUaRhgTIwyp3lla6XCkYDIYn6hsbFQOo+j5EIEI1648skpcA1zTQHLdc2cE3PpUP37nNPHtpxQct52HJOikggMCBHAFSUfi5S0MIAUlWrLclKe7pSSEsHBhlFh7kEyFp1jw8kbJmj3TxBRjAjorRhH4ipjUQpaBkgjAzIEYbKjVARSXqthZ00aHngGvvAwD3v/9BFB5Bw6nvePU2Clvv233zjtzdc+be/YIdwHrackwVkgIiWqlsCBOQGqHtj0dimE7uloEWrwlAQRKOJoS1ByUrVNJGAtVnSNADSSSshUo8Z0URMAQlhmAATMlJtTmBIFkUzdeuL37261X1SlR55D+25YAF7LXgJrZxz2mnTMGile+pk3fpBUjVqwoHrZOABElatWdOzL1uevftLxsbudPPsQ//GRMwdO8fG0W0Z8T9//nOmixcueBG7veTFJPDTB/8fCQyuXb9PyLJlY3u7llx9+42r2f6chy3n0nJaquIYQWaZSYUJTKV2CTGlASICU8uKUhFDKTrEVKkqnatcLRNJatdQWCCiFtecSGAAltILMtLPEDAS0m9CAIale0S0Yoh2ericaIDRY2879o2rznzfySto7eLpFLS631Ny5z3/svCiT16+Hz0gafmmtg/JaA+/bHnh69+w6pXv/pMVdPHtE//oWCbg9485etVr3vOejuf55X0/XnjbVVftxzTxB288atXxJ//XFSTc84MfHvutL9xAArEoDtkhgct52HIukxHBCgsyQSm6mJQBklGAFTEgkMmopCoMhckAGSCSAESgEGlWaw4r2rLsGGgpzZXOBFIUqDRTy6AF6WKFbTm3tV9+LO/j6hK1IsIQE2St/+29J5566j5JxzMJJvOervzS1R8BrmIaWP90up9Oxj6xaEzAmt883fU8d1933YSf24bhkQF2kGefeqbpnszsDOCaSQlczsOWcwKiSQjU4T0ZSKG0mKcIRBOZoiIZGBhJqioJozNZCnpqkzYkk0gkCAaxFLTaJRWljfsYkdA2aEVSgKQ7AkYg0ppz7mf3rzz6sre894wrbv3mtUwCSdeaGd0CF7CaXnPe1NS5RgxRHfZgGRBj3Dhg87AYKQrbOLAYCWYErPWeKbGFRbAWS3AGIFD7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"},80249:(e,A,n)=>{n.d(A,{A:()=>t});const t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqMAAACICAMAAADktRKGAAADAFBMVEXiZwDiaAHiaALiaQPjagXjawbjbAjjbQrjbgzjbw3kbw7kcA/kcRDkchLkchPkcxTkdBXkdBbldRfldRjldxvleBzleB3meyHmeyLmfCPmfCTmfSXmfifnfyjnfynngCrngSvngSzngi3ngi7nhDDohDHohTLohjTohzboiDjpijvpizzpiz3pjD7pjT/pjUDpjkHpjkLqj0PqkETqkUbqkkjqk0nrlEvrlU3rlk/rl1Drl1HrmFLrmFPsmVTsmlXsmlbsm1fsm1jsnFnsnlztnl3toF/toGDtoWHtoWLtomPto2Tto2XupGbupGfupWjupmnupmrup2vup2zuqG3vqW7vqW/vqnDvqnHvq3LvrHPvrHTvrXXvrXbwrnfwr3jwr3nwsHrwsHvwsXzwsn3wsn7ws3/xs4DxtIHxtILxtYPxtoTxtoXxt4bxt4fxuIjyuYnyuYryuovyuozyu43yvI7yvI/yvZDyvZHzvpLzv5Pzv5TzwJXzwJbzwZfzwpjzwpn0w5r0w5v0xJz0xZ30xZ70xp/0xqD0x6H0yKL1yKP1yaT1yaX1yqb1y6f1y6j1zKn1zKr1zav2zqz2zq32z672z6/20LD20bH20bL20rP20rT307X307b31Lf31bj31bn31rr31rv317z32L342L742b/42cD42sH428L428P43MT43MX53cb53sf53sj538r54Mv54cz54c354s764s/649D65NH65NL65dP65dT65tX659b659f76Nj76Nn76dr76tv76tz7693769777N/77eD87eH87uL87uP87+T87+X88Ob88ef88ej88un98ur98+v99Oz99O399e799e/99vD99/H+9/L++PP++PT++fX++vb++vf++/j++/n+/Pr//fv//fz//v3//v7////rlEzqkEXldhnqkUfsnVrsnVvoiDfldhrtn17qk0roiTnjbAnkcRHrlU7jbgvngy/mfibleR7meR/ohTPmeiDohzXiaQTjawfpbQDpijrMVahuAAAOp0lEQVR4XuzS1Q2FQAAAweu/0MPd5UkVBEhmCtivDZf4hucBj+JR8CgeBY+CR/EoeBQ8ikfBo3gUPAoexaPgUTwKHgWP4lHwKHgUj4JH8Sh4FDyKR8Gj4FE8Ch7Fo+BR8CgeBY/iUfAoeBSPgkfhTKekyJtfdeOj/dzGbFvHC9J0eznU8Vg+4ZX+xNx5eBRlgsfxX3cTEo4AGS4BD2S4xAFdFVGuMAQZlhUZEVBgFFFAFxDGYYUVARUZYUWOCBoUkEUUD9ThEnYQxAlmODJxgAQQyJ3+IXKoQeQSHvbZp9+3jq56u6uarcrnz4K36+nqL9VV71t06Mroj8so5C3pU93S6ISsWI4CuCMrniGIJbXv7K8oHPlg9G+SICT42sE5+oBRMFO+pQXPjerdCHC3aycHSLHLuc+O7N/tGjijD58UgMVQfV9WKZ1f2EEpe8oPyYjybJb0I0yuj2x9oxImD2ZJ98EPpyYdoNm+8Y2iGv2EsQwC0I/xvAq1658/QrMjc3+GkNBr305dcSos1G9p66hacLNrhwdIvcuclzJS4YA+fAgs5un7inZySQnNiha1hMl0SuNh8gdGfAuTrZR6wnvnpxXTqnxhAx8brTamnDaWtruKRufRYKCbRsn9jwZ9alQ6/EwDN42WtHHeaMu3aCP82g0w+InSxzBZzogJMErTQ0mF5waU0N7X7X1rtOEG5ZCURBtNLabBZ+4aJVek+tsoWfLiMeeNMrumw0aTpoVpr2JiCJoULYOSStPwI4xYC6OulD6B12osoFLZIJ8a/dU2Kn3RIsFGB9KktctGue20z42S/7zdeaOc56zR+h9TbWUdaN6hdCsMOmhFn4bBJEoj4bGm2xjLzIAfjV7exBgK2yfW6EaaTHXbKFeE/G6UFU8GHTfKe500+stuxpLza0hDKD0BgzGUusBgPaVf4K162YztUT8aHcVYNlUm1OgFmu2v7rZRPuJ7o2RmwHGjhc3jN9o0n7F93QjC9ZTes9/lc9DVLKfwzwA8VfkpTfI2LPtgd5gGFXd43+j5ImoK1i589Z1NBdR90wwJNTqNUY67brSgpv+N8mnHjXJzZbxGa26hUXH2R29+klNKow3JEHK0+KsZYiyjtBW6jpRegbdep8Engy9Gwu241JDpvovRjT51t41rAJw3bjhIYbhh4wXYGUlpy/FLAIBAq2Erw4zoASTy2pUHGOVdGCjeUuff/+c66kY43LWTA6TYZcbgcYsO0Og+x41yRpxGg0uoK5x5V+SrJKX73DLqXgtY/lVfgeYu6k5B8xSl4/BUOnWfH4Wu2XuUll8X3ejdcGIvhXaI53MKX9aBrsWccpKckuBr96Kws5wR4cYwUL+l9B2U1jnctfrVHO3yUvs3qCtv7bhR9ozdaH/q5p2D7lpjvPdYchwOzWTqekHzEYWKOvBS0nZqZifBKDQuHPmQ/gXwutE6lDrBpNkack1Sgo2uojByGYV/d1jV2UMUwmleNyqd3EjNSueNHmwSq9HKXEqlvWA2sILSV+KrPaWYwjJoNlP3MqTqxRT+Ak8NoeZJRBtAcnvPALxv9GcK4dowS5qUfzHB/puGtbNnBoWdQYfB9KV01K9GkfIWNd85bpRrk2I0+jClYutL9tAjHYCIFVr6IQj1abADUntKo+GllIKY9zIv7B2UBPjQaEdKDRGtXqL9j6PwEZK/UXz2ymBSKfX1rVGEllHaGHTcKJ9RN1ozn9JgWD1BKU/cez1knUw+QaNmEB6n1BZe6kZp6xlYVasJ+NLoFUqzoOC60VAuhX7ALAqZToP5isII/xpF3V2UfnTeaPioslG9r2WwEVpNqXNky3WUHoLw58gGsQbVH9Fn3D1BeGk2pS5Q8KXRxtSsuPH/qdFOFIpPA7dRKKnjMJgtFEb52Ci6UhrnvFHubaBqdC6ln2HnN5b5gRwKb0AQ949TxRQAIi4dovAqvBTKp7AxUKWNJhVSt3rorwPuG1VPqi0CENxNYbCzYFIqKNzvZ6PBrRQ2xR3+LjXvh6yNmj/g5fGKz0XEVC18kUQzMU9/vXnzL5R6wUsdKPVHlTaKRTTJ+68+ja+y0V+Vmr7FnqbwP86C6Uypu5+NYgClc/GGd15CzZP2jd5MqQfs9aXUKrLhKKXmpsmrBcgz/b0hFCrqwUsDKDV21+jqTKt5V9NoOi12zM5IuYpGh1HITwKAFpTaOAkmLY/SeZeNqg+Qk0bPUuoWN/G6uZQqbrFtdDCFsCqki9FL/2eKKfw+smGhOIvJ64ahkc1ZFNbAU2Mp/A1OG1Uru5pGg5/SxpEFXS4n2uhWCtOjHi+Z7qDR1mspbYe7RtXKnDQKrbsBcRvFrRWUcuvZNTqewmao5EQ/u7TC/FBVUFwuXId/M958Bfbpp3BPzbS56btxpo0zXjeKFoW0VTAwlFCjV6IX9YZSOFBpW9XA5tK3D8wPUzPC50bfVS432AwfQ83SgE2jL1N4Eyorox8XeVDL3vhczj+AJpHNh6oBQHNKN8FTS62rB/iONlI9bxS3KyLlxnaJNDqTQjYiTlVQ6GWtSu3v1X1udAGFFx00emk1NcNsGl1GYSZU5lNYiIhrKTUxLALMBbAzsvlm0xLrviA8tZbCn6q+Udy0kfbCL15y3WiNwxSesMznrXLT6G/hc6PTKbzhoFGcK6BU2tba6Dr9A1aZSuEDy8zwvxoO273QJplHmya15sFb71GYXvWNAqH782lvXshto30pNYVwD4VwE+eNfgi/G32FwitOGkU3ar6qZWl0FYWpUJlFYaml2lkALhfqh7G34ZjsovA9vDWXwut+NqqWOvEftDXKZaN6B59CSjlMYazjRt+p7Xuj/6089dkPn05NpqXR+fofqSy1XA500qIHcEtk/C4AOCeWQc4AjQ2P3HjrPyj8xd9G1YLtn8ujVXEzd43eQJsZ+DkUdoccVvX8Jfje6DYKQ501WvlXau6LbnQyhY+gsoHCU0D07FNDYKzxpJ4d2dwR6E1hHTw2jEJpirtG/5Ru1d1Vo2rBC0MWF1hqcdfoRAqldey+Ie50VNWGe4AEGlUfICeNNlIv3yiGNy+kVNgiqtHhFAovw16NMm2E9VR+HPjUcGmKGdp/E3iJwhh4LJ3SXXEa9WSdSS3Y8pFVpTTYE3LTaLU9FBZDF8qjsNBBo4vaQvB1nakvpZNOh99LzZY3zcWlU+oAe51sntx9UD8z1Co3rvGIRxzXA19SuAKPnS6zXqCnddF096FRtRrp71PX1k2jXSmNbWeQRaG0njWYnZv/z+eUZqNKGl1HYW/Q8fBMasLmRk+XU5gcb4q8KNm61rUFP4kZuMiAY2JRK7U+hfwQ4NeNfXlTWF3yp1G1u/MpdXXT6FLG8ZAymAUUwleqotEfKM12Prx2jvL3Jj6kcOg07JwqofA2dNsp1HtWzJ+bF++6pVOYD88NpjTHh0bdu53SAy4abVjOODYrg7mmhML6oP+N1viCUrqL4T+WqRp9hLGXLCfbHuDnKHQT3yu9zdNS06ZQ+B08dzFM6UQVN9rg1RRYbafwoItGH2NcJ5XBPEPpPv8bXUDpYE03wx9VNXptmEJpG1jpC/7l5+0uUjOjnsESV3/bNjIiXB/em0vpSMsqbTTwLj9rEOPJkAznoQS2M64XlMGkFlDYl+pzo6Hp1IxwNTy40tKopfq/Wd/OqVxKf4ZBcpFsMOq5mrph03ZugA/OF1M6+C2itPOx0T+Q3N0FURpQutV5KLcyvoPJymCGUprqb6Npb1OTW+lu+LE9ikbPllH6vCHMzuZQKj4Ho+U0eQnSJpqMgx/+SE3ZY5UwSB5Z5l+jrUsi6zo3wOjyKgqltZyHMocOfK8M5nIOhfKffWw0ZeQ31PV1O/zOsH2jmEHNrk4w+u1eaibb3qdYrwMn0+Rm+KFWLnW7+qVCOP/oHh/nR5PlvULZ4hM1ILVZSWml81BqF9GBD9TB9KT0oT+NJjf+sf+SQhq8GXTbKCYqGj32NXXLO4QQUa3jaup21YXJWZo0gPQTjfaH4ItWh2hQ/v74QT1OPDzlrzQqr+no954Sb/QF6ooWT3ig8y8dvh+1irp+zkO5n1L+aosySs2UVQXWUDqeSKNX/3tP687AdaNJa+0bxZUSGuyd/Xjfrv1GzztAgyOtESWbBl9CU7uCBpnwyQ/ljKPobnjbaGfG8UU156Gsp/QwLBZTekrZKNpTyk2pikZ31If7RtH0G/tG0Yfx9EC0KZYbTGEdDfrAL/3CjOngLfC40Ru2M7ajzkNpRaniFCy66/mFlI0ii9Ifq6DRz5ogkUZxQtEoxjC2R2Dxg+oXpZ6mwTH45mgBY9jTGl43ijqrGMtoF6FMobQcVtUP6N2rG722jELJWd8bfb46EmsUsxSN4p4iqh3uDqtk44j60N1J3Ub46PwaKi1sBO8bRbUpFVR6Fs5DqV5AKQM2ZlB6Xd0oplJa5nOjeRlAoo2mbFM0ijY7qZJ9I+y8Tc0W0z7KqBkPPyWN3k9b2+4A/GgUaLGY9g58DxeNZlA6WAkb7SmVpqkbrXeQ0k9+Nrq9/2Uk3ihaFSsaRd1JRbRzeEJt2BpEzTTVW2wPf9V6PJ8WOcOT4FejwE3vhGlRMqcR3DS6ktIM2An8ndJQdaMYoWdz2a9G972WEQKuplEMVn8YDaaXMlrRM2lQOEvFkwPjKB24BL+l/G7uXhrsmNg2APjYKFC/9/x8GlRseizN3dxr4zDj7HQspS0xGq3cRelxzxst3Ll++StDWgYgJN4o3lI2Cpzql3WIuv2ZfdKglq34+YjbKC1EVQhcGDzh5aVrV2dOGpZxQQQqG/VJ6GTPQWNfzFq1eNbk4bfV+N/27pgGgBAAYCALalhQQjBBMEEwQZCASwZE/I93Gro3/IqYa5/7rNFKur7L34BG0ShoFDSKRkGjaBQ0ChpFo6BR0CgaBY2iUdAoaBSNgkbRKGgUNIpGQaOgUTQKGkWjoFHQKBoFjYJG0ShoFI2CRkGjaBQ0ikZBo6BRNAoaBY2iUXgmUpYnaISaXAAAAABJRU5ErkJggg=="},88443:(e,A,n)=>{n.d(A,{A:()=>t});const t=n.p+"assets/images/tank-fc486c6a4bf11d04afa9e44af5889eea.jpg"},28453:(e,A,n)=>{n.d(A,{R:()=>s,x:()=>r});var t=n(96540);const a={},o=t.createContext(a);function s(e){const A=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(A):{...A,...e}}),[A,e])}function r(e){let A;return A=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),t.createElement(o.Provider,{value:A},e.children)}},37711:e=>{e.exports=JSON.parse('{"permalink":"/playhack-make-a-game-get-featured","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-10-20-playhack-make-a-game-get-featured.md","source":"@site/blog/2014-10-20-playhack-make-a-game-get-featured.md","title":"PLAYHACK - Make a game, get featured","description":"PLAYHACK","date":"2014-10-20T00:00:00.000Z","tags":[],"readingTime":1.54,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playhack-make-a-game-get-featured","title":"PLAYHACK - Make a game, get featured"},"unlisted":false,"prevItem":{"title":"PLAYHACK November - Adding Tank Controls","permalink":"/playhack-november-adding-tank-controls"},"nextItem":{"title":"HTML5 Game Development Community Meet Up","permalink":"/html5-game-development-community-meet-up"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/33840749.9ba1c4ca.js b/assets/js/33840749.fe0e6bc7.js
similarity index 96%
rename from assets/js/33840749.9ba1c4ca.js
rename to assets/js/33840749.fe0e6bc7.js
index f5e0da655..cb862c000 100644
--- a/assets/js/33840749.9ba1c4ca.js
+++ b/assets/js/33840749.fe0e6bc7.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[96479],{63077:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>n,toc:()=>d});var n=a(95353),i=a(74848),s=a(28453),o=a(13554),r=a.n(o);const l={authors:"paulo",slug:"how-to-make-your-html5-games-awesome",title:"How to make your HTML5 Games Awesome!",tags:["gamedev","html5","webgl"]},c=void 0,h={authorsImageUrls:[void 0]},d=[{value:"How it started",id:"how-it-started",level:2},{value:"What can we improve?",id:"what-can-we-improve",level:2},{value:"For shooting",id:"for-shooting",level:2},{value:"Destroying Asteroids",id:"destroying-asteroids",level:2},{value:"Colliding With Asteroids",id:"colliding-with-asteroids",level:2},{value:"And that about does it",id:"and-that-about-does-it",level:2},{value:"Want to learn more?",id:"want-to-learn-more",level:2}];function m(e){const t={a:"a",blockquote:"blockquote",code:"code",h2:"h2",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"How To Make Your HTML5 Games Awesome",src:a(48772).A+"",width:"1024",height:"576"})}),"\n",(0,i.jsx)(t.p,{children:"The quality of a video game is often determined by how polished it is. It's the attention to detail and the finishing touches that can make a good game great. In this article, we'll take a look at the importance of polish in game development and how it can significantly enhance the overall experience."}),"\n",(0,i.jsxs)(t.p,{children:["We'll use ",(0,i.jsx)(t.a,{href:"https://playcanvas.com/project/1029772/overview/space-rocks",children:"Space Rocks!"}),", a simple Asteroids game created with the PlayCanvas game engine to showcase how even the smallest details can make a big impact."]}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://www.youtube.com/watch?v=Fy0aCDmgnxg",children:"Game juice"})," is a design term to refer to the small visual and audio effects that are added to a game to make it feel more satisfying to play. This can include things like screen shakes, particle effects, and sound effects that are triggered when the player takes certain actions. Game juice is all about enhancing the overall feel of a game and making it more immersive and enjoyable."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Particularly, we'll explore how game polish can be achieved through ",(0,i.jsx)(t.strong,{children:"game juice"}),"."]}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/Space-Rocks-before-and-after-v2-60fps.mp4"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"https://playcanvas.com/project/1014332/overview/space-rocks",children:"Play it here!"})}),"\n",(0,i.jsx)(t.h2,{id:"how-it-started",children:"How it started"}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/Space-Rocks-How-it-started-1.mp4"}),"\n",(0,i.jsx)(t.p,{children:"This was our starting point before we added game juice. While the game is fully functional and plays well, it lacks the visual and audio effects that would make it truly engaging. As a result, it feels a bit dull and uninteresting."}),"\n",(0,i.jsx)(t.p,{children:"However, with the right attention to detail and some careful implementation of game juice, we can transform this basic Asteroids game into something much more exciting and satisfying to play."}),"\n",(0,i.jsx)(t.h2,{id:"what-can-we-improve",children:"What can we improve?"}),"\n",(0,i.jsx)(t.p,{children:"To think about what should have game juice, I always try to narrow down the most common interaction or core mechanic of the game. In our case, that would probably be:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Shooting"}),"\n",(0,i.jsx)(t.li,{children:"Destroying asteroids"}),"\n",(0,i.jsx)(t.li,{children:"Colliding with asteroids"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"With those three key pieces in mind, let's start thinking about how we can improve them."}),"\n",(0,i.jsx)(t.h2,{id:"for-shooting",children:"For shooting"}),"\n",(0,i.jsx)(t.p,{children:"It's not very interesting right now:"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Basic Shooting",src:a(95520).A+"",width:"1140",height:"655"})}),"\n",(0,i.jsx)(t.p,{children:"If we want to change that, there's a few key things we can do. We can increase the fire rate through a script that allows us to easily control by decreasing the fire cooldown."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"Gun.attributes.add('cooldown', {\n type: 'number',\n default: 0.25,\n title: 'Cooldown',\n description: 'How long the gun has to wait between firing each bullet'\n});\n\nGun.prototype.update = function (dt) {\n this._cooldownTimer -= dt;\n\n if (this.app.mouse.isPressed(pc.MOUSEBUTTON_LEFT) && this.canFire()) {\n this.fireBullet();\n }\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"In fact, while we're at it, let's make shooting a bit more unpredictable. Let's add some spread to our shots!"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"Gun.attributes.add('spread', {\n type: 'number',\n default: 10,\n title: 'Bullet Spread',\n description: 'Up to how many degrees each bullet should vary in Y rotation.'\n});\n\nGun.prototype.applySpreadOn = function (bullet) {\n var rotation = this.entity.getEulerAngles();\n rotation.y += getRandomDeviation(this.spread);\n bullet.setEulerAngles(rotation);\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"A simple but impactful change! Here's how it looks with values I put in for some fun:"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Shooting Spread Effect",src:a(34698).A+"",width:"1140",height:"655"})}),"\n",(0,i.jsx)(t.p,{children:"I highly encourage you to play with these values to see what's fun for you!"}),"\n",(0,i.jsx)(t.p,{children:"It's getting better, but still not there. Let's think about more visual aspects now. What more can we do to make it more visually appealing?"}),"\n",(0,i.jsx)(t.p,{children:"PlayCanvas has a nice feature that allows you to have tons of lights in your scene with very little performance impact! It's called \u2728 Clustered Lighting \u2728."}),"\n",(0,i.jsxs)("blockquote",{class:"twitter-tweet",children:[(0,i.jsxs)("p",{lang:"en",dir:"ltr",children:["Clustered area lights are happening at ",(0,i.jsx)("a",{href:"https://twitter.com/playcanvas?ref_src=twsrc%5Etfw",children:"@playcanvas"})," ! ",(0,i.jsx)("a",{href:"https://t.co/LTwlhbcg8y",children:"pic.twitter.com/LTwlhbcg8y"})]}),"\u2014 Martin Valigursky (@ValigurskyM) ",(0,i.jsx)("a",{href:"https://twitter.com/ValigurskyM/status/1458769117914312707?ref_src=twsrc%5Etfw",children:"November 11, 2021"})]}),"\n",(0,i.jsx)("script",{async:!0,src:"https://platform.twitter.com/widgets.js",charset:"utf-8"}),"\n",(0,i.jsx)(t.p,{children:"We can actually leverage this amazing tech to give every single one of our bullets a point light - this makes the scene considerably more dynamic as everything gets lit up when we fire!"}),"\n",(0,i.jsx)(t.p,{children:"As another touch, let's add a few sparkles when our shots hit something! The extra visual effect will make a big difference instead of just letting our bullets disappear. Particle explosions are always awesome."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Shooting With Particles",src:a(55110).A+"",width:"1140",height:"655"})}),"\n",(0,i.jsx)(t.p,{children:"Awesome! Our bullets look pretty nice. But we\u2019re still shooting at fairly dull asteroids. Let's make a few changes."}),"\n",(0,i.jsx)(t.h2,{id:"destroying-asteroids",children:"Destroying Asteroids"}),"\n",(0,i.jsx)(t.p,{children:"Firstly, we want our asteroids to stand out from our background. Let's change the background texture to something a bit brighter."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"New Background Texture",src:a(15221).A+"",width:"3456",height:"1950"})}),"\n",(0,i.jsx)(t.p,{children:"Much better! But can we make the asteroids themselves prettier? They're currently mapped with a fairly low resolution texture. Moreover, there's no variety - all asteroids are the same, only rotated differently."}),"\n",(0,i.jsx)(t.p,{children:"Let's import a new mesh and texture for the asteroids."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"New Asteroid Model",src:a(79308).A+"",width:"3456",height:"1912"})}),"\n",(0,i.jsx)(t.p,{children:"Nice! Much more visible, and much more variety - I should note I went ahead and added a simple component that further randomizes the scale of the asteroids being spawned!"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"var ScaleRandomizer = pc.createScript('scaleRandomizer');\n\nScaleRandomizer.attributes.add('baseScale', {\n type: 'number',\n title: 'Base Scale',\n description: 'The base scale to deviate from'\n});\n\nScaleRandomizer.attributes.add('scaleDeviation', {\n type: 'number',\n title: 'Scale Deviation',\n description: 'The amount by which the effective scale should deviate from the base scale'\n});\n\n// initialize code called once per entity\nScaleRandomizer.prototype.initialize = function () {\n this.entity.setLocalScale(this.getRandomScale());\n};\n\nScaleRandomizer.prototype.getRandomScale = function () {\n var deviation = getRandomFloatDeviation(this.scaleDeviation, 3);\n var randomScale = this.baseScale + deviation;\n\n return new pc.Vec3(randomScale, randomScale, randomScale);\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"Awesome, the asteroids look much nicer. Let's turn our attention back to our background for a moment as it looks very static."}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Could we give it some life by adding some \u2018background\u2019 asteroids?"}),"\n",(0,i.jsx)(t.li,{children:"Could we even make destroyed asteroids leave pieces behind as we destroy them?"}),"\n",(0,i.jsx)(t.li,{children:"The game currently gets harder as time goes on. Maybe we can indicate that visually somehow? Maybe by changing the background texture?"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Let's implement these ideas!"}),"\n",(0,i.jsx)(t.p,{children:"For the background asteroids, I simply reused our asteroid spawner class, but moved the spawn points a bit below."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Spawner Script UI",src:a(39203).A+"",width:"506",height:"884"})}),"\n",(0,i.jsx)(t.p,{children:"To make it as non-impactful on performance as possible, I duplicated our template, renamed it to FakeAsteroid and removed all components, except the Mover and Rotator components."}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:"This is one of the beauties of using a component-based architecture! It allows you to quickly alter the behavior of objects without having to write or modify code at all!"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"I also made the FakeAsteroid texture much darker, so as not to distract or confuse the player."}),"\n",(0,i.jsx)(t.p,{children:"My approach to the \u2018fragment\u2019 asteroids was similar, except I made them much smaller, and gave the regular asteroids a component to spawn fragments on death."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"FragmentSpawner.attributes.add('minMaxCount', {\n type: 'vec2',\n title: 'Min, Max Count',\n description: 'The minimum and maximum amount of fragments to spawn.'\n});\n\nFragmentSpawner.prototype.spawnFragments = function () {\n if (FragmentSpawner.fragmentParent === null) {\n return;\n }\n\n var spawnCount = getRandomInRange(this.minMaxCount.x, this.minMaxCount.y);\n\n for (i = 0; i < spawnCount; i++) {\n this.spawnSingleFragment();\n }\n};\n\nFragmentSpawner.prototype.spawnSingleFragment = function () {\n var fragment = this.fragmentTemplate.resource.instantiate();\n fragment.reparent(FragmentSpawner.fragmentParent);\n var position = this.getFragmentPosition();\n fragment.setPosition(position);\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"And, while we\u2019re at it, why don't we add a dust puff and small particles when the asteroid gets destroyed to complement our fragments?"}),"\n",(0,i.jsx)(t.p,{children:"I gathered a few textures online, duplicated our bullet hit particle effects and modified them. To spawn the particle effects, I used the same component I had used in the bullet:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"// A script that spawns a particle effect on death\nvar DeathEffect = pc.createScript('deathEffect');\n\nDeathEffect.attributes.add('particleEffects', {\n type: 'asset',\n assetType: 'template',\n array: true,\n title: 'Particle Effect Templates',\n});\n\nDeathEffect.effectParent = null;\n\n// initialize code called once per entity\nDeathEffect.prototype.initialize = function () {\n this.entity.on('destroy', this.onDestroy, this);\n\n if (!DeathEffect.effectParent) {\n DeathEffect.effectParent = this.entity.parent;\n }\n};\n\nDeathEffect.prototype.onDestroy = function () {\n for (var i = 0; i < this.particleEffects.length; i++) {\n var effect = this.particleEffects[i].resource.instantiate();\n effect.setPosition(this.entity.getPosition());\n effect.reparent(effectParent);\n }\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"And lastly for the background, I added a script to lerp the transparency of our blue space material towards 0. This slowly reveals a purple material underneath."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"// A script that manages ambient color.\nvar AmbientManager = pc.createScript('ambientManager');\n\nAmbientManager.attributes.add('startingColor', {\n type: 'rgba',\n title: 'Starting Color',\n description: 'The starting color for the ambient'\n});\n\nAmbientManager.attributes.add('finalColor', {\n type: 'rgba',\n title: 'Final Color',\n description: 'The final color for the ambient'\n});\n\nAmbientManager.attributes.add('targetMaterial', {\n type: 'asset',\n assetType: 'material',\n title: 'Target Material',\n description: 'The material whose color to set (Matching the ambient color)'\n});\n\n// initialize code called once per entity\nAmbientManager.prototype.initialize = function () {\n this.updateTransition(0);\n};\n\nAmbientManager.prototype.updateTransition = function (transitionProgress) {\n var color = new pc.Color();\n color.lerp(this.startingColor, this.finalColor, transitionProgress);\n\n var mat = this.targetMaterial.resource;\n mat.emissive = color;\n mat.opacity = color.a;\n mat.update();\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"Here's the end result with all of our asteroid changes:"}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/Space-Rocks-After.mp4"}),"\n",(0,i.jsx)(t.p,{children:"It looks amazingly better! Already a massive difference from our starting point."}),"\n",(0,i.jsx)(t.h2,{id:"colliding-with-asteroids",children:"Colliding With Asteroids"}),"\n",(0,i.jsx)(t.p,{children:"The last piece of the puzzle is when asteroids hit us! It needs to feel impactful! As if you were in a car, and the car just went over a bump."}),"\n",(0,i.jsx)(t.p,{children:"We'll want to communicate it a bit better. Right now, all that happens is that the \u2018n lives left\u2019 counter in the top left gets decremented. Not only does it need to be obvious that we've got hit, but the player must be able to consult how many lives left he has at a glance."}),"\n",(0,i.jsx)(t.p,{children:"I downloaded the model for our spaceship, and made a top-down render of it in Blender. The result was a simple plain icon:"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Spaceship Icon",src:a(12561).A+"",width:"567",height:"567"})}),"\n",(0,i.jsx)(t.p,{children:"Plain, but enough to make a health counter with. Let's make it semi transparent and add it to the world. Our health counter will display from one to three of these icons to indicate how much life we've got left."}),"\n",(0,i.jsx)(t.p,{children:"To give it some more juice, let's also make it \u2018jump up\u2019 when our health changes, and rotate it inwards towards the game world, to give it a 3D appearance."}),"\n",(0,i.jsx)(t.p,{children:"And, since using components makes it easy, let's do the same to our score counter:"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Score Counter",src:a(2344).A+"",width:"1706",height:"948"})}),"\n",(0,i.jsx)(t.p,{children:"Much simpler, and much nicer!"}),"\n",(0,i.jsx)(t.p,{children:"Next up, let's try to emulate that \u2018bump\u2019 feeling. We can do this by adding some screen shake whenever we get hit! And for extra impact, we can make it slow-mo as well!"}),"\n",(0,i.jsx)(t.p,{children:"Making it slow mo is fairly simple - one component does it:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"var BulletTimeEffect = pc.createScript('bulletTimeEffect');\n\nBulletTimeEffect.attributes.add('effectDuration', {\n type: 'number',\n default: 1,\n title: 'Effect Duration',\n description: 'How long the bullet time effect should last.'\n});\n\nBulletTimeEffect.attributes.add('timeCurve', {\n type: 'curve',\n title: 'Time Curve',\n description: 'How much the time scale should be over unscaled time.'\n});\n\n// initialize code called once per entity\nBulletTimeEffect.prototype.initialize = function () {\n this._time = 0;\n this.entity.on('destroy', function () {\n this.app.timeScale = 1;\n }, this);\n};\n\n// update code called every frame\nBulletTimeEffect.prototype.update = function (dt) {\n this._time += (dt / this.app.timeScale) / this.effectDuration;\n this.app.timeScale = this.timeCurve.value(this._time);\n this.app.timeScale = Math.min(1, this.app.timeScale);\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"As for making the screen shake, it's a bit more complex (though certainly not magic!). The underlying logic is to simply move the camera randomly. To do so, we can use a script that tracks the camera's original position, and translates it randomly. We reset to the original position at the beginning of each new frame, and repeat."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"this.entity.setPosition(originalPosition);\nthis.entity.translate(this.getRandomTranslation());\n"})}),"\n",(0,i.jsx)(t.p,{children:"The above getRandomTranslation() method could simply return a random Vector3, and it would work. Problem is, though, this approach can make the camera feel like it is jittering, not shaking, particularly if the shake distance is large. This can cause motion sickness."}),"\n",(0,i.jsx)(t.p,{children:"What else can we do then? Well, there is a more mathematically complex way of getting a random number - one that makes it so that our shaking is smooth, not jittery. This way of getting a random number is Perlin Noise!"}),"\n",(0,i.jsxs)(t.p,{children:["Perlin Noise is used to create awesome things all over media, from explosion visual effects to Minecraft's world generation. If you're interested in the math or simply curious, you can learn more in ",(0,i.jsx)(t.a,{href:"https://adrianb.io/2014/08/09/perlinnoise.html",children:"this"})," excellent article."]}),"\n",(0,i.jsxs)(t.p,{children:["Let's go with Perlin Noise for our game. You can see the implementation we went with in the ",(0,i.jsx)(t.a,{href:"https://playcanvas.com/editor/code/1029772?tabs=118417182",children:"perlin-camera-shake.js"})," and ",(0,i.jsx)(t.a,{href:"https://playcanvas.com/editor/code/1029772?tabs=118417125",children:"perlin-noise.js"})," script."]}),"\n",(0,i.jsx)(t.p,{children:"Lastly, let's add a small shockwave whenever we get hit! Let's use a particle system for this - just like with the asteroid explosion and bullet hit effects. I grabbed a simple circular texture, coloured it red to indicate something negative, and added a script that spawns the effect whenever the player gets hit."}),"\n",(0,i.jsx)(t.p,{children:"The combined effects look like this:"}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/Space-Rocks-Preview.mp4"}),"\n",(0,i.jsx)(t.p,{children:"You'll notice I've added screen shake to more than just the player getting hit! I'm a big fan of this effect, so I've added it to asteroid explosions and firing bullets as well!"}),"\n",(0,i.jsx)(t.h2,{id:"and-that-about-does-it",children:"And that about does it"}),"\n",(0,i.jsxs)(t.p,{children:["With the effects we added above, the game looks and plays entirely different. Destroying asteroids ",(0,i.jsx)(t.strong,{children:"feels"})," good, and everything else in the game is there to enhance that experience."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Finished Game",src:a(35254).A+"",width:"3414",height:"1906"})}),"\n",(0,i.jsx)(t.p,{children:"As a last finishing touch, I went ahead and added a few post-processing effects that PlayCanvas offers. Namely, Vignette, Bloom and Chromatic Aberration. I also added CRT Scanlines as an overlay for a retro effect."}),"\n",(0,i.jsxs)(t.p,{children:["I hope this guide has been useful to you! Take a look at the project, it is public and is accessible as a ",(0,i.jsx)(t.a,{href:"https://developer.playcanvas.com/tutorials/space-rocks/",children:"Game Demo in our documentation"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"PlayCanvas is an excellent cloud-based game engine that allows you to build games for the browser. It has an amazing editor that allows you to use it as if it were Unity or Unreal - which most developers are accustomed to."}),"\n",(0,i.jsx)(t.h2,{id:"want-to-learn-more",children:"Want to learn more?"}),"\n",(0,i.jsx)(t.p,{children:"Here's a few resources if you want to try and make something similar to juice up your game!"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"PlayCanvas"})," is an awesome web-first game engine that runs on the cloud. You don't need to download anything, and it's free!"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"https://playcanvas.com/",children:"PlayCanvas - The Web-First Game Engine"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"This one reddit post"})," sums up many tricks you can do in about 60 seconds!"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"https://www.reddit.com/r/gamedev/comments/yy79kh/juice_your_game_in_60_seconds/",children:"Juice your game in 60 seconds"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"There's this very nice GDC talk"})," that goes into game juice a bit more deeply. Tons of useful information there!"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"https://www.youtube.com/watch?v=Fy0aCDmgnxg",children:"Juice it or lose it - a talk by Martin Jonasson & Petri Purho"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"And there's this awesome INDIGO class"})," that goes in-depth about my favorite game juice - screen shake!"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"https://www.youtube.com/watch?v=AJdEqssNZ-U",children:"Vlambeer - The art of screenshake by Jan Willem Nijman"})})]})}function p(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(m,{...e})}):m(e)}},15221:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-2-8088ca80b7c0d5a339941f91a6c3a517.png"},79308:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-3-b6691837516252c2fd066a8c2f1e662e.png"},39203:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-4-b3b0f857d226c264024727a626db246e.png"},12561:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-6-f2ee39bfaaff6549a0bdd3e215dfb814.png"},2344:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-7-7e6af640167357fde5bc21c804bbfa0e.png"},35254:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-9-e28220de3f32cf4b528a7a1373220465.png"},55110:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/Space-Rocks-image3-f1f32b2c577208188faba09f48a1eedd.gif"},34698:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/Space-Rocks-image7-466936dde9a5ff0e326423aa68c59a3b.gif"},95520:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/Space-Rocks-image9-b721d55894f95bc655c6e994084747c4.gif"},48772:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/Space-Rocks-thumbnail-6a8e0ba166e3f9693377924f55a7df34.jpeg"},95353:e=>{e.exports=JSON.parse('{"permalink":"/how-to-make-your-html5-games-awesome","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","source":"@site/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","title":"How to make your HTML5 Games Awesome!","description":"How To Make Your HTML5 Games Awesome","date":"2023-02-07T00:00:00.000Z","tags":[{"inline":true,"label":"gamedev","permalink":"/tags/gamedev"},{"inline":true,"label":"html5","permalink":"/tags/html-5"},{"inline":true,"label":"webgl","permalink":"/tags/webgl"}],"readingTime":11.64,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGBCxiefbbUlw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1654615914498?e=1730332800&v=beta&t=430DvI8uuos5obx7BhhHBqhT5TnNTv3q91eOOg6diII","key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"how-to-make-your-html5-games-awesome","title":"How to make your HTML5 Games Awesome!","tags":["gamedev","html5","webgl"]},"unlisted":false,"prevItem":{"title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","permalink":"/draco-mesh-compression-arrives-in-the-playcanvas-editor"},"nextItem":{"title":"PlayCanvas now supports Microsoft volumetric video playback","permalink":"/playcanvas-now-supports-microsoft-volumetric-video-playback"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[96479],{63077:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>n,toc:()=>d});var n=a(95353),i=a(74848),s=a(28453),o=a(13554),r=a.n(o);const l={authors:"paulo",slug:"how-to-make-your-html5-games-awesome",title:"How to make your HTML5 Games Awesome!",tags:["gamedev","html5","webgl"]},c=void 0,h={authorsImageUrls:[void 0]},d=[{value:"How it started",id:"how-it-started",level:2},{value:"What can we improve?",id:"what-can-we-improve",level:2},{value:"For shooting",id:"for-shooting",level:2},{value:"Destroying Asteroids",id:"destroying-asteroids",level:2},{value:"Colliding With Asteroids",id:"colliding-with-asteroids",level:2},{value:"And that about does it",id:"and-that-about-does-it",level:2},{value:"Want to learn more?",id:"want-to-learn-more",level:2}];function m(e){const t={a:"a",blockquote:"blockquote",code:"code",h2:"h2",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"How To Make Your HTML5 Games Awesome",src:a(48772).A+"",width:"1024",height:"576"})}),"\n",(0,i.jsx)(t.p,{children:"The quality of a video game is often determined by how polished it is. It's the attention to detail and the finishing touches that can make a good game great. In this article, we'll take a look at the importance of polish in game development and how it can significantly enhance the overall experience."}),"\n",(0,i.jsxs)(t.p,{children:["We'll use ",(0,i.jsx)(t.a,{href:"https://playcanvas.com/project/1029772/overview/space-rocks",children:"Space Rocks!"}),", a simple Asteroids game created with the PlayCanvas game engine to showcase how even the smallest details can make a big impact."]}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://www.youtube.com/watch?v=Fy0aCDmgnxg",children:"Game juice"})," is a design term to refer to the small visual and audio effects that are added to a game to make it feel more satisfying to play. This can include things like screen shakes, particle effects, and sound effects that are triggered when the player takes certain actions. Game juice is all about enhancing the overall feel of a game and making it more immersive and enjoyable."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Particularly, we'll explore how game polish can be achieved through ",(0,i.jsx)(t.strong,{children:"game juice"}),"."]}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/Space-Rocks-before-and-after-v2-60fps.mp4"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"https://playcanvas.com/project/1014332/overview/space-rocks",children:"Play it here!"})}),"\n",(0,i.jsx)(t.h2,{id:"how-it-started",children:"How it started"}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/Space-Rocks-How-it-started-1.mp4"}),"\n",(0,i.jsx)(t.p,{children:"This was our starting point before we added game juice. While the game is fully functional and plays well, it lacks the visual and audio effects that would make it truly engaging. As a result, it feels a bit dull and uninteresting."}),"\n",(0,i.jsx)(t.p,{children:"However, with the right attention to detail and some careful implementation of game juice, we can transform this basic Asteroids game into something much more exciting and satisfying to play."}),"\n",(0,i.jsx)(t.h2,{id:"what-can-we-improve",children:"What can we improve?"}),"\n",(0,i.jsx)(t.p,{children:"To think about what should have game juice, I always try to narrow down the most common interaction or core mechanic of the game. In our case, that would probably be:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Shooting"}),"\n",(0,i.jsx)(t.li,{children:"Destroying asteroids"}),"\n",(0,i.jsx)(t.li,{children:"Colliding with asteroids"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"With those three key pieces in mind, let's start thinking about how we can improve them."}),"\n",(0,i.jsx)(t.h2,{id:"for-shooting",children:"For shooting"}),"\n",(0,i.jsx)(t.p,{children:"It's not very interesting right now:"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Basic Shooting",src:a(95520).A+"",width:"1140",height:"655"})}),"\n",(0,i.jsx)(t.p,{children:"If we want to change that, there's a few key things we can do. We can increase the fire rate through a script that allows us to easily control by decreasing the fire cooldown."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"Gun.attributes.add('cooldown', {\n type: 'number',\n default: 0.25,\n title: 'Cooldown',\n description: 'How long the gun has to wait between firing each bullet'\n});\n\nGun.prototype.update = function (dt) {\n this._cooldownTimer -= dt;\n\n if (this.app.mouse.isPressed(pc.MOUSEBUTTON_LEFT) && this.canFire()) {\n this.fireBullet();\n }\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"In fact, while we're at it, let's make shooting a bit more unpredictable. Let's add some spread to our shots!"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"Gun.attributes.add('spread', {\n type: 'number',\n default: 10,\n title: 'Bullet Spread',\n description: 'Up to how many degrees each bullet should vary in Y rotation.'\n});\n\nGun.prototype.applySpreadOn = function (bullet) {\n var rotation = this.entity.getEulerAngles();\n rotation.y += getRandomDeviation(this.spread);\n bullet.setEulerAngles(rotation);\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"A simple but impactful change! Here's how it looks with values I put in for some fun:"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Shooting Spread Effect",src:a(34698).A+"",width:"1140",height:"655"})}),"\n",(0,i.jsx)(t.p,{children:"I highly encourage you to play with these values to see what's fun for you!"}),"\n",(0,i.jsx)(t.p,{children:"It's getting better, but still not there. Let's think about more visual aspects now. What more can we do to make it more visually appealing?"}),"\n",(0,i.jsx)(t.p,{children:"PlayCanvas has a nice feature that allows you to have tons of lights in your scene with very little performance impact! It's called \u2728 Clustered Lighting \u2728."}),"\n",(0,i.jsxs)("blockquote",{class:"twitter-tweet",children:[(0,i.jsxs)("p",{lang:"en",dir:"ltr",children:["Clustered area lights are happening at ",(0,i.jsx)("a",{href:"https://twitter.com/playcanvas?ref_src=twsrc%5Etfw",children:"@playcanvas"})," ! ",(0,i.jsx)("a",{href:"https://t.co/LTwlhbcg8y",children:"pic.twitter.com/LTwlhbcg8y"})]}),"\u2014 Martin Valigursky (@ValigurskyM) ",(0,i.jsx)("a",{href:"https://twitter.com/ValigurskyM/status/1458769117914312707?ref_src=twsrc%5Etfw",children:"November 11, 2021"})]}),"\n",(0,i.jsx)("script",{async:!0,src:"https://platform.twitter.com/widgets.js",charset:"utf-8"}),"\n",(0,i.jsx)(t.p,{children:"We can actually leverage this amazing tech to give every single one of our bullets a point light - this makes the scene considerably more dynamic as everything gets lit up when we fire!"}),"\n",(0,i.jsx)(t.p,{children:"As another touch, let's add a few sparkles when our shots hit something! The extra visual effect will make a big difference instead of just letting our bullets disappear. Particle explosions are always awesome."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Shooting With Particles",src:a(55110).A+"",width:"1140",height:"655"})}),"\n",(0,i.jsx)(t.p,{children:"Awesome! Our bullets look pretty nice. But we\u2019re still shooting at fairly dull asteroids. Let's make a few changes."}),"\n",(0,i.jsx)(t.h2,{id:"destroying-asteroids",children:"Destroying Asteroids"}),"\n",(0,i.jsx)(t.p,{children:"Firstly, we want our asteroids to stand out from our background. Let's change the background texture to something a bit brighter."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"New Background Texture",src:a(15221).A+"",width:"3456",height:"1950"})}),"\n",(0,i.jsx)(t.p,{children:"Much better! But can we make the asteroids themselves prettier? They're currently mapped with a fairly low resolution texture. Moreover, there's no variety - all asteroids are the same, only rotated differently."}),"\n",(0,i.jsx)(t.p,{children:"Let's import a new mesh and texture for the asteroids."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"New Asteroid Model",src:a(79308).A+"",width:"3456",height:"1912"})}),"\n",(0,i.jsx)(t.p,{children:"Nice! Much more visible, and much more variety - I should note I went ahead and added a simple component that further randomizes the scale of the asteroids being spawned!"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"var ScaleRandomizer = pc.createScript('scaleRandomizer');\n\nScaleRandomizer.attributes.add('baseScale', {\n type: 'number',\n title: 'Base Scale',\n description: 'The base scale to deviate from'\n});\n\nScaleRandomizer.attributes.add('scaleDeviation', {\n type: 'number',\n title: 'Scale Deviation',\n description: 'The amount by which the effective scale should deviate from the base scale'\n});\n\n// initialize code called once per entity\nScaleRandomizer.prototype.initialize = function () {\n this.entity.setLocalScale(this.getRandomScale());\n};\n\nScaleRandomizer.prototype.getRandomScale = function () {\n var deviation = getRandomFloatDeviation(this.scaleDeviation, 3);\n var randomScale = this.baseScale + deviation;\n\n return new pc.Vec3(randomScale, randomScale, randomScale);\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"Awesome, the asteroids look much nicer. Let's turn our attention back to our background for a moment as it looks very static."}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Could we give it some life by adding some \u2018background\u2019 asteroids?"}),"\n",(0,i.jsx)(t.li,{children:"Could we even make destroyed asteroids leave pieces behind as we destroy them?"}),"\n",(0,i.jsx)(t.li,{children:"The game currently gets harder as time goes on. Maybe we can indicate that visually somehow? Maybe by changing the background texture?"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Let's implement these ideas!"}),"\n",(0,i.jsx)(t.p,{children:"For the background asteroids, I simply reused our asteroid spawner class, but moved the spawn points a bit below."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Spawner Script UI",src:a(39203).A+"",width:"506",height:"884"})}),"\n",(0,i.jsx)(t.p,{children:"To make it as non-impactful on performance as possible, I duplicated our template, renamed it to FakeAsteroid and removed all components, except the Mover and Rotator components."}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:"This is one of the beauties of using a component-based architecture! It allows you to quickly alter the behavior of objects without having to write or modify code at all!"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"I also made the FakeAsteroid texture much darker, so as not to distract or confuse the player."}),"\n",(0,i.jsx)(t.p,{children:"My approach to the \u2018fragment\u2019 asteroids was similar, except I made them much smaller, and gave the regular asteroids a component to spawn fragments on death."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"FragmentSpawner.attributes.add('minMaxCount', {\n type: 'vec2',\n title: 'Min, Max Count',\n description: 'The minimum and maximum amount of fragments to spawn.'\n});\n\nFragmentSpawner.prototype.spawnFragments = function () {\n if (FragmentSpawner.fragmentParent === null) {\n return;\n }\n\n var spawnCount = getRandomInRange(this.minMaxCount.x, this.minMaxCount.y);\n\n for (i = 0; i < spawnCount; i++) {\n this.spawnSingleFragment();\n }\n};\n\nFragmentSpawner.prototype.spawnSingleFragment = function () {\n var fragment = this.fragmentTemplate.resource.instantiate();\n fragment.reparent(FragmentSpawner.fragmentParent);\n var position = this.getFragmentPosition();\n fragment.setPosition(position);\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"And, while we\u2019re at it, why don't we add a dust puff and small particles when the asteroid gets destroyed to complement our fragments?"}),"\n",(0,i.jsx)(t.p,{children:"I gathered a few textures online, duplicated our bullet hit particle effects and modified them. To spawn the particle effects, I used the same component I had used in the bullet:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"// A script that spawns a particle effect on death\nvar DeathEffect = pc.createScript('deathEffect');\n\nDeathEffect.attributes.add('particleEffects', {\n type: 'asset',\n assetType: 'template',\n array: true,\n title: 'Particle Effect Templates',\n});\n\nDeathEffect.effectParent = null;\n\n// initialize code called once per entity\nDeathEffect.prototype.initialize = function () {\n this.entity.on('destroy', this.onDestroy, this);\n\n if (!DeathEffect.effectParent) {\n DeathEffect.effectParent = this.entity.parent;\n }\n};\n\nDeathEffect.prototype.onDestroy = function () {\n for (var i = 0; i < this.particleEffects.length; i++) {\n var effect = this.particleEffects[i].resource.instantiate();\n effect.setPosition(this.entity.getPosition());\n effect.reparent(effectParent);\n }\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"And lastly for the background, I added a script to lerp the transparency of our blue space material towards 0. This slowly reveals a purple material underneath."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"// A script that manages ambient color.\nvar AmbientManager = pc.createScript('ambientManager');\n\nAmbientManager.attributes.add('startingColor', {\n type: 'rgba',\n title: 'Starting Color',\n description: 'The starting color for the ambient'\n});\n\nAmbientManager.attributes.add('finalColor', {\n type: 'rgba',\n title: 'Final Color',\n description: 'The final color for the ambient'\n});\n\nAmbientManager.attributes.add('targetMaterial', {\n type: 'asset',\n assetType: 'material',\n title: 'Target Material',\n description: 'The material whose color to set (Matching the ambient color)'\n});\n\n// initialize code called once per entity\nAmbientManager.prototype.initialize = function () {\n this.updateTransition(0);\n};\n\nAmbientManager.prototype.updateTransition = function (transitionProgress) {\n var color = new pc.Color();\n color.lerp(this.startingColor, this.finalColor, transitionProgress);\n\n var mat = this.targetMaterial.resource;\n mat.emissive = color;\n mat.opacity = color.a;\n mat.update();\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"Here's the end result with all of our asteroid changes:"}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/Space-Rocks-After.mp4"}),"\n",(0,i.jsx)(t.p,{children:"It looks amazingly better! Already a massive difference from our starting point."}),"\n",(0,i.jsx)(t.h2,{id:"colliding-with-asteroids",children:"Colliding With Asteroids"}),"\n",(0,i.jsx)(t.p,{children:"The last piece of the puzzle is when asteroids hit us! It needs to feel impactful! As if you were in a car, and the car just went over a bump."}),"\n",(0,i.jsx)(t.p,{children:"We'll want to communicate it a bit better. Right now, all that happens is that the \u2018n lives left\u2019 counter in the top left gets decremented. Not only does it need to be obvious that we've got hit, but the player must be able to consult how many lives left he has at a glance."}),"\n",(0,i.jsx)(t.p,{children:"I downloaded the model for our spaceship, and made a top-down render of it in Blender. The result was a simple plain icon:"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Spaceship Icon",src:a(12561).A+"",width:"567",height:"567"})}),"\n",(0,i.jsx)(t.p,{children:"Plain, but enough to make a health counter with. Let's make it semi transparent and add it to the world. Our health counter will display from one to three of these icons to indicate how much life we've got left."}),"\n",(0,i.jsx)(t.p,{children:"To give it some more juice, let's also make it \u2018jump up\u2019 when our health changes, and rotate it inwards towards the game world, to give it a 3D appearance."}),"\n",(0,i.jsx)(t.p,{children:"And, since using components makes it easy, let's do the same to our score counter:"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Score Counter",src:a(2344).A+"",width:"1706",height:"948"})}),"\n",(0,i.jsx)(t.p,{children:"Much simpler, and much nicer!"}),"\n",(0,i.jsx)(t.p,{children:"Next up, let's try to emulate that \u2018bump\u2019 feeling. We can do this by adding some screen shake whenever we get hit! And for extra impact, we can make it slow-mo as well!"}),"\n",(0,i.jsx)(t.p,{children:"Making it slow mo is fairly simple - one component does it:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"var BulletTimeEffect = pc.createScript('bulletTimeEffect');\n\nBulletTimeEffect.attributes.add('effectDuration', {\n type: 'number',\n default: 1,\n title: 'Effect Duration',\n description: 'How long the bullet time effect should last.'\n});\n\nBulletTimeEffect.attributes.add('timeCurve', {\n type: 'curve',\n title: 'Time Curve',\n description: 'How much the time scale should be over unscaled time.'\n});\n\n// initialize code called once per entity\nBulletTimeEffect.prototype.initialize = function () {\n this._time = 0;\n this.entity.on('destroy', function () {\n this.app.timeScale = 1;\n }, this);\n};\n\n// update code called every frame\nBulletTimeEffect.prototype.update = function (dt) {\n this._time += (dt / this.app.timeScale) / this.effectDuration;\n this.app.timeScale = this.timeCurve.value(this._time);\n this.app.timeScale = Math.min(1, this.app.timeScale);\n};\n"})}),"\n",(0,i.jsx)(t.p,{children:"As for making the screen shake, it's a bit more complex (though certainly not magic!). The underlying logic is to simply move the camera randomly. To do so, we can use a script that tracks the camera's original position, and translates it randomly. We reset to the original position at the beginning of each new frame, and repeat."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"this.entity.setPosition(originalPosition);\nthis.entity.translate(this.getRandomTranslation());\n"})}),"\n",(0,i.jsx)(t.p,{children:"The above getRandomTranslation() method could simply return a random Vector3, and it would work. Problem is, though, this approach can make the camera feel like it is jittering, not shaking, particularly if the shake distance is large. This can cause motion sickness."}),"\n",(0,i.jsx)(t.p,{children:"What else can we do then? Well, there is a more mathematically complex way of getting a random number - one that makes it so that our shaking is smooth, not jittery. This way of getting a random number is Perlin Noise!"}),"\n",(0,i.jsxs)(t.p,{children:["Perlin Noise is used to create awesome things all over media, from explosion visual effects to Minecraft's world generation. If you're interested in the math or simply curious, you can learn more in ",(0,i.jsx)(t.a,{href:"https://adrianb.io/2014/08/09/perlinnoise.html",children:"this"})," excellent article."]}),"\n",(0,i.jsxs)(t.p,{children:["Let's go with Perlin Noise for our game. You can see the implementation we went with in the ",(0,i.jsx)(t.a,{href:"https://playcanvas.com/editor/code/1029772?tabs=118417182",children:"perlin-camera-shake.js"})," and ",(0,i.jsx)(t.a,{href:"https://playcanvas.com/editor/code/1029772?tabs=118417125",children:"perlin-noise.js"})," script."]}),"\n",(0,i.jsx)(t.p,{children:"Lastly, let's add a small shockwave whenever we get hit! Let's use a particle system for this - just like with the asteroid explosion and bullet hit effects. I grabbed a simple circular texture, coloured it red to indicate something negative, and added a script that spawns the effect whenever the player gets hit."}),"\n",(0,i.jsx)(t.p,{children:"The combined effects look like this:"}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/Space-Rocks-Preview.mp4"}),"\n",(0,i.jsx)(t.p,{children:"You'll notice I've added screen shake to more than just the player getting hit! I'm a big fan of this effect, so I've added it to asteroid explosions and firing bullets as well!"}),"\n",(0,i.jsx)(t.h2,{id:"and-that-about-does-it",children:"And that about does it"}),"\n",(0,i.jsxs)(t.p,{children:["With the effects we added above, the game looks and plays entirely different. Destroying asteroids ",(0,i.jsx)(t.strong,{children:"feels"})," good, and everything else in the game is there to enhance that experience."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Finished Game",src:a(35254).A+"",width:"3414",height:"1906"})}),"\n",(0,i.jsx)(t.p,{children:"As a last finishing touch, I went ahead and added a few post-processing effects that PlayCanvas offers. Namely, Vignette, Bloom and Chromatic Aberration. I also added CRT Scanlines as an overlay for a retro effect."}),"\n",(0,i.jsxs)(t.p,{children:["I hope this guide has been useful to you! Take a look at the project, it is public and is accessible as a ",(0,i.jsx)(t.a,{href:"https://developer.playcanvas.com/tutorials/space-rocks/",children:"Game Demo in our documentation"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"PlayCanvas is an excellent cloud-based game engine that allows you to build games for the browser. It has an amazing editor that allows you to use it as if it were Unity or Unreal - which most developers are accustomed to."}),"\n",(0,i.jsx)(t.h2,{id:"want-to-learn-more",children:"Want to learn more?"}),"\n",(0,i.jsx)(t.p,{children:"Here's a few resources if you want to try and make something similar to juice up your game!"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"PlayCanvas"})," is an awesome web-first game engine that runs on the cloud. You don't need to download anything, and it's free!"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"https://playcanvas.com/",children:"PlayCanvas - The Web-First Game Engine"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"This one reddit post"})," sums up many tricks you can do in about 60 seconds!"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"https://www.reddit.com/r/gamedev/comments/yy79kh/juice_your_game_in_60_seconds/",children:"Juice your game in 60 seconds"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"There's this very nice GDC talk"})," that goes into game juice a bit more deeply. Tons of useful information there!"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"https://www.youtube.com/watch?v=Fy0aCDmgnxg",children:"Juice it or lose it - a talk by Martin Jonasson & Petri Purho"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"And there's this awesome INDIGO class"})," that goes in-depth about my favorite game juice - screen shake!"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"https://www.youtube.com/watch?v=AJdEqssNZ-U",children:"Vlambeer - The art of screenshake by Jan Willem Nijman"})})]})}function p(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(m,{...e})}):m(e)}},15221:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-2-8088ca80b7c0d5a339941f91a6c3a517.png"},79308:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-3-b6691837516252c2fd066a8c2f1e662e.png"},39203:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-4-b3b0f857d226c264024727a626db246e.png"},12561:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-6-f2ee39bfaaff6549a0bdd3e215dfb814.png"},2344:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-7-7e6af640167357fde5bc21c804bbfa0e.png"},35254:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/MakeYourHTML5GamesAwesome-9-e28220de3f32cf4b528a7a1373220465.png"},55110:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/Space-Rocks-image3-f1f32b2c577208188faba09f48a1eedd.gif"},34698:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/Space-Rocks-image7-466936dde9a5ff0e326423aa68c59a3b.gif"},95520:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/Space-Rocks-image9-b721d55894f95bc655c6e994084747c4.gif"},48772:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/Space-Rocks-thumbnail-6a8e0ba166e3f9693377924f55a7df34.jpeg"},95353:e=>{e.exports=JSON.parse('{"permalink":"/how-to-make-your-html5-games-awesome","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","source":"@site/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","title":"How to make your HTML5 Games Awesome!","description":"How To Make Your HTML5 Games Awesome","date":"2023-02-07T00:00:00.000Z","tags":[{"inline":true,"label":"gamedev","permalink":"/tags/gamedev"},{"inline":true,"label":"html5","permalink":"/tags/html-5"},{"inline":true,"label":"webgl","permalink":"/tags/webgl"}],"readingTime":11.64,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"how-to-make-your-html5-games-awesome","title":"How to make your HTML5 Games Awesome!","tags":["gamedev","html5","webgl"]},"unlisted":false,"prevItem":{"title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","permalink":"/draco-mesh-compression-arrives-in-the-playcanvas-editor"},"nextItem":{"title":"PlayCanvas now supports Microsoft volumetric video playback","permalink":"/playcanvas-now-supports-microsoft-volumetric-video-playback"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/33914c52.5be7b3bc.js b/assets/js/33914c52.5be7b3bc.js
deleted file mode 100644
index 513efc6d3..000000000
--- a/assets/js/33914c52.5be7b3bc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[31725],{875:a=>{a.exports=JSON.parse('{"author":{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam","count":6},"listMetadata":{"permalink":"/authors/adam","page":1,"postsPerPage":10,"totalPages":1,"totalCount":6,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/33914c52.c4017e5d.js b/assets/js/33914c52.c4017e5d.js
new file mode 100644
index 000000000..a8efbfb05
--- /dev/null
+++ b/assets/js/33914c52.c4017e5d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[31725],{875:a=>{a.exports=JSON.parse('{"author":{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam","count":6},"listMetadata":{"permalink":"/authors/adam","page":1,"postsPerPage":10,"totalPages":1,"totalCount":6,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/341d88f2.d68992c4.js b/assets/js/341d88f2.39edf1df.js
similarity index 66%
rename from assets/js/341d88f2.d68992c4.js
rename to assets/js/341d88f2.39edf1df.js
index db81ca7d7..efd26471b 100644
--- a/assets/js/341d88f2.d68992c4.js
+++ b/assets/js/341d88f2.39edf1df.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[89185],{50582:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>n,toc:()=>l});var n=t(35037),s=t(74848),i=t(28453);const o={authors:"christy",slug:"playcanvas-update-040714",title:"PlayCanvas Update 04/07/14"},r=void 0,c={authorsImageUrls:[void 0]},l=[];function p(e){const a={a:"a",br:"br",em:"em",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(a.p,{children:["There has been plenty going on at HQ since our last update and it is all making game development on our engine that little bit easier. Here\u2019s a run down of engine optimizations, new features\xa0and what happened behind the scenes at\xa0",(0,s.jsx)(a.a,{href:"https://playcanvas.com/",children:"PlayCanvas"}),"\xa0this week."]}),"\n",(0,s.jsxs)(a.p,{children:[(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(48301).A+"",children:(0,s.jsx)(a.img,{alt:"Spacetifacts",src:t(44239).A+"",width:"800",height:"459"})}),(0,s.jsx)(a.br,{}),"\n",(0,s.jsx)(a.em,{children:"Team HexPenguin's PlayCanvas game 'Spacetifacts' won the Malmo Game Jam"})]})]})}function m(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},48301:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/files/Spacetifacts-33e448093bc44cced7fee33bea8c2fab.jpg"},44239:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/Spacetifacts-33e448093bc44cced7fee33bea8c2fab.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>o,x:()=>r});var n=t(96540);const s={},i=n.createContext(s);function o(e){const a=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(i.Provider,{value:a},e.children)}},35037:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-040714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-04-playcanvas-update-040714.md","source":"@site/blog/2014-07-04-playcanvas-update-040714.md","title":"PlayCanvas Update 04/07/14","description":"There has been plenty going on at HQ since our last update and it is all making game development on our engine that little bit easier. Here\u2019s a run down of engine optimizations, new features\xa0and what happened behind the scenes at\xa0PlayCanvas\xa0this week.","date":"2014-07-04T00:00:00.000Z","tags":[],"readingTime":1.905,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-040714","title":"PlayCanvas Update 04/07/14"},"unlisted":false,"prevItem":{"title":"Great British Summer Game Jam","permalink":"/great-british-summer-game-jam"},"nextItem":{"title":"PlayCanvas Voted the Leading WebGL Engine","permalink":"/playcanvas-voted-number-1-webgl-engine-by-develop-magazine"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[89185],{50582:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>n,toc:()=>l});var n=t(35037),s=t(74848),i=t(28453);const r={authors:"christy",slug:"playcanvas-update-040714",title:"PlayCanvas Update 04/07/14"},o=void 0,c={authorsImageUrls:[void 0]},l=[];function p(e){const a={a:"a",br:"br",em:"em",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(a.p,{children:["There has been plenty going on at HQ since our last update and it is all making game development on our engine that little bit easier. Here\u2019s a run down of engine optimizations, new features\xa0and what happened behind the scenes at\xa0",(0,s.jsx)(a.a,{href:"https://playcanvas.com/",children:"PlayCanvas"}),"\xa0this week."]}),"\n",(0,s.jsxs)(a.p,{children:[(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(48301).A+"",children:(0,s.jsx)(a.img,{alt:"Spacetifacts",src:t(44239).A+"",width:"800",height:"459"})}),(0,s.jsx)(a.br,{}),"\n",(0,s.jsx)(a.em,{children:"Team HexPenguin's PlayCanvas game 'Spacetifacts' won the Malmo Game Jam"})]})]})}function m(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},48301:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/files/Spacetifacts-33e448093bc44cced7fee33bea8c2fab.jpg"},44239:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/Spacetifacts-33e448093bc44cced7fee33bea8c2fab.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>r,x:()=>o});var n=t(96540);const s={},i=n.createContext(s);function r(e){const a=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(i.Provider,{value:a},e.children)}},35037:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-040714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-04-playcanvas-update-040714.md","source":"@site/blog/2014-07-04-playcanvas-update-040714.md","title":"PlayCanvas Update 04/07/14","description":"There has been plenty going on at HQ since our last update and it is all making game development on our engine that little bit easier. Here\u2019s a run down of engine optimizations, new features\xa0and what happened behind the scenes at\xa0PlayCanvas\xa0this week.","date":"2014-07-04T00:00:00.000Z","tags":[],"readingTime":1.905,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-040714","title":"PlayCanvas Update 04/07/14"},"unlisted":false,"prevItem":{"title":"Great British Summer Game Jam","permalink":"/great-british-summer-game-jam"},"nextItem":{"title":"PlayCanvas Voted the Leading WebGL Engine","permalink":"/playcanvas-voted-number-1-webgl-engine-by-develop-magazine"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/34229ac5.3da9b733.js b/assets/js/34229ac5.d9e9f8d6.js
similarity index 57%
rename from assets/js/34229ac5.3da9b733.js
rename to assets/js/34229ac5.d9e9f8d6.js
index 18c05799a..e3c36b224 100644
--- a/assets/js/34229ac5.3da9b733.js
+++ b/assets/js/34229ac5.d9e9f8d6.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[37376],{66248:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>m,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var s=a(96414),n=a(74848),i=a(28453);const o={authors:"christy",slug:"meet-the-playcanvas-team-maksims-mihejevs",title:"Meet the PlayCanvas team: Maksims Mihejevs",tags:["team"]},m=void 0,r={authorsImageUrls:[void 0]},l=[];function c(e){const t={a:"a",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Max",src:a(11237).A+"",width:"256",height:"256"})}),"\n",(0,n.jsxs)(t.p,{children:["Today we are talking to the Russian (from Latvia) Senior Engineer at ",(0,n.jsx)(t.a,{href:"https://playcanvas.com",children:"PlayCanvas"}),": Max!"]})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11237:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/team-max-2014-613dae6b74889a3a11c45583f5fb3f2a.png"},28453:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>m});var s=a(96540);const n={},i=s.createContext(n);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function m(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(i.Provider,{value:t},e.children)}},96414:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-maksims-mihejevs","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-24-meet-the-playcanvas-team-maksims-mihejevs.md","source":"@site/blog/2014-06-24-meet-the-playcanvas-team-maksims-mihejevs.md","title":"Meet the PlayCanvas team: Maksims Mihejevs","description":"Max","date":"2014-06-24T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":1.57,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-maksims-mihejevs","title":"Meet the PlayCanvas team: Maksims Mihejevs","tags":["team"]},"unlisted":false,"prevItem":{"title":"New Custom and Built-in Post Effects","permalink":"/new-custom-and-built-in-post-effects"},"nextItem":{"title":"Meet the PlayCanvas team: Vaios Kalpias-Illias","permalink":"/meet-the-playcanvas-team-vaios-kalpias-illias"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[37376],{66248:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>h,frontMatter:()=>m,metadata:()=>s,toc:()=>l});var s=a(96414),n=a(74848),i=a(28453);const m={authors:"christy",slug:"meet-the-playcanvas-team-maksims-mihejevs",title:"Meet the PlayCanvas team: Maksims Mihejevs",tags:["team"]},o=void 0,r={authorsImageUrls:[void 0]},l=[];function c(e){const t={a:"a",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Max",src:a(11237).A+"",width:"256",height:"256"})}),"\n",(0,n.jsxs)(t.p,{children:["Today we are talking to the Russian (from Latvia) Senior Engineer at ",(0,n.jsx)(t.a,{href:"https://playcanvas.com",children:"PlayCanvas"}),": Max!"]})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},11237:(e,t,a)=>{a.d(t,{A:()=>s});const s=a.p+"assets/images/team-max-2014-613dae6b74889a3a11c45583f5fb3f2a.png"},28453:(e,t,a)=>{a.d(t,{R:()=>m,x:()=>o});var s=a(96540);const n={},i=s.createContext(n);function m(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:m(e.components),s.createElement(i.Provider,{value:t},e.children)}},96414:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-maksims-mihejevs","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-24-meet-the-playcanvas-team-maksims-mihejevs.md","source":"@site/blog/2014-06-24-meet-the-playcanvas-team-maksims-mihejevs.md","title":"Meet the PlayCanvas team: Maksims Mihejevs","description":"Max","date":"2014-06-24T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":1.57,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-maksims-mihejevs","title":"Meet the PlayCanvas team: Maksims Mihejevs","tags":["team"]},"unlisted":false,"prevItem":{"title":"New Custom and Built-in Post Effects","permalink":"/new-custom-and-built-in-post-effects"},"nextItem":{"title":"Meet the PlayCanvas team: Vaios Kalpias-Illias","permalink":"/meet-the-playcanvas-team-vaios-kalpias-illias"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/3a134c15.8e10ff14.js b/assets/js/3a134c15.5272b389.js
similarity index 92%
rename from assets/js/3a134c15.8e10ff14.js
rename to assets/js/3a134c15.5272b389.js
index acc610f76..5a1887fb5 100644
--- a/assets/js/3a134c15.8e10ff14.js
+++ b/assets/js/3a134c15.5272b389.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[35050],{54239:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>n,toc:()=>h});var n=a(99161),i=a(74848),s=a(28453);const o={authors:"christy",slug:"virtual-reality-and-the-future-of-web-based-gaming",title:"Virtual Reality and the future of Web Based Gaming",tags:["oculus","vr"]},r=void 0,l={authorsImageUrls:[void 0]},h=[{value:"What is the Oculus Rift?",id:"what-is-the-oculus-rift",level:2},{value:"Why Virtual reality?",id:"why-virtual-reality",level:2},{value:"The Oculus Rift and\xa0PlayCanvas",id:"the-oculus-rift-andplaycanvas",level:2}];function u(e){const t={a:"a",br:"br",em:"em",h2:"h2",img:"img",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["On Thursday 19th of June we will be ",(0,i.jsx)(t.a,{href:"https://www.meetup.com/London-Indie-Game-Developers/events/185608412/",children:"showcasing"})," some of our recent work with the amazing and exciting Oculus Rift Development Kit. In the build up and anticipation to this event we hope to convey why Virtual Reality and revolutionary hardware from\xa0",(0,i.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Reality_Labs",children:"Oculus VR"}),"\xa0are set to be a part of our future at\xa0",(0,i.jsx)(t.a,{href:"https://playcanvas.com",children:"PlayCanvas"}),". Playing a game in VR is one thing. Making a game in VR...now that really is the future."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(72034).A+"",children:(0,i.jsx)(t.img,{alt:"playcanvas oculus1",src:a(23836).A+"",width:"800",height:"450"})})}),"\n",(0,i.jsx)(t.h2,{id:"what-is-the-oculus-rift",children:"What is the Oculus Rift?"}),"\n",(0,i.jsx)(t.p,{children:"Developed first by then 18 year old Palmer Luckey, two evolutions of its development kit amongst other improvements makes it arguably the most promising virtual reality system to date.\xa0The Oculus Rift is a low latency,head-mounted display that receives two independently rendered images to a screen to be viewed through stereoscope lenses."}),"\n",(0,i.jsx)(t.h2,{id:"why-virtual-reality",children:"Why Virtual reality?"}),"\n",(0,i.jsx)(t.p,{children:"Many virtual reality experiences target immersion, where users interaction can open the door to a reality (even if only partially) that is not their own. \xa0However the technology behind the Oculus lets the user into a much deeper experience. Where extreme latency and narrow fields of vision have prevented previous Virtual Reality technologies from being immersive, they have often proved successful in creating nausea. As humans are sensitive to latencies as low as 20 milliseconds it is important for the technology in question to be as precise and fast as possible."}),"\n",(0,i.jsx)(t.p,{children:"Usually leaving users craning necks and grabbing thin air in disbelief, the Oculus takes over 1000 readings per second and so far is effective enough to trick the mind and simulate a physical presence. The VR industry is now closer to 'telexistance' than ever before. Mark Zuckerberg, the current owner of the technology (following an\xa0acquisition worth $2 billion by Facebook) described its potential, exclaiming \xa0\"Imagine enjoying a courtside seat at a game, studying in a classroom of students and teachers all over the world, or consulting with a doctor face-to-face\u2014just by putting on goggles in your home.\u201d. The Oculus promises that in (hopefully few) years to come, gamers may be able to act and react naturally in what is still a virtual setting."}),"\n",(0,i.jsx)(t.h2,{id:"the-oculus-rift-andplaycanvas",children:"The Oculus Rift and\xa0PlayCanvas"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(17870).A+"",children:(0,i.jsx)(t.img,{alt:"Dave in VR",src:a(9916).A+"",width:"600",height:"450"})}),(0,i.jsx)(t.br,{}),"\n",(0,i.jsx)(t.em,{children:"Oculus Rift support coming soon to PlayCanvas"})]}),"\n",(0,i.jsx)(t.p,{children:"Imagine a future where you open your Internet browser, select a VR ready online game, enable your Oculus headset and transport yourself into the game immediately. Mind blowing? Potentially yes.\xa0This is why we here at PlayCanvas are committed to intertwining the paths of both WebGL and HTML5 technologies with the capabilities of the Oculus Rift. It's crazy to think that VR games could be played and developed by simply opening your favorite web browser."}),"\n",(0,i.jsx)(t.p,{children:"Firefox are already thinking about VR on the web. Chrome are too. Be sure that when VR support fully comes to the web, PlayCanvas will be ready to help you get there faster. Game Developer's have so many challenges to overcome while developing their game that adding VR (or Head-Mounted Display) support\xa0could become just another one of the\xa0features that you'd love to try but never quite have time to do.\xa0However, using PlayCanvas it's simple. Just drop the OculusCamera script onto your camera and we'll do all the magic to make your game render ready for the headset."}),"\n",(0,i.jsx)(t.p,{children:"Hyper-realistic gaming experiences should not be limited to core gaming platforms. When web-based gaming can involve products like the Oculus we're opening up an whole new class of\xa0immersive gaming experiences. The best of the features of the web; low-friction, accessible and shareable; with the best features of the Oculus, immersive, high-end experiences. It's brave new world!"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsxs)(t.strong,{children:["Dave Evans (CTO at PlayCanvas) will be showcasing some of our work with the Oculus Rift on ",(0,i.jsx)(t.a,{href:"https://www.meetup.com/London-Indie-Game-Developers/events/185608412/",children:"June 19th\xa0at the Scenario Bar"}),"."]})," ",(0,i.jsxs)(t.strong,{children:["Check out the Event link\xa0",(0,i.jsx)(t.a,{href:"https://www.meetup.com/London-Indie-Game-Developers/events/185608412/",children:"here"}),"\xa0and\xa0maybe we will see you there!"]})]})]})}function c(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},17870:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/dave-vr-201d6bcf1f579f5dcdedfbb0ba382d26.jpg"},72034:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/playcanvas-oculus1-d5bbaf1ae0391440183ec468f37c46d8.jpg"},9916:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/dave-vr-201d6bcf1f579f5dcdedfbb0ba382d26.jpg"},23836:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/playcanvas-oculus1-d5bbaf1ae0391440183ec468f37c46d8.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>r});var n=a(96540);const i={},s=n.createContext(i);function o(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(s.Provider,{value:t},e.children)}},99161:e=>{e.exports=JSON.parse('{"permalink":"/virtual-reality-and-the-future-of-web-based-gaming","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-19-virtual-reality-and-the-future-of-web-based-gaming.md","source":"@site/blog/2014-06-19-virtual-reality-and-the-future-of-web-based-gaming.md","title":"Virtual Reality and the future of Web Based Gaming","description":"On Thursday 19th of June we will be showcasing some of our recent work with the amazing and exciting Oculus Rift Development Kit. In the build up and anticipation to this event we hope to convey why Virtual Reality and revolutionary hardware from\xa0Oculus VR\xa0are set to be a part of our future at\xa0PlayCanvas. Playing a game in VR is one thing. Making a game in VR...now that really is the future.","date":"2014-06-19T00:00:00.000Z","tags":[{"inline":true,"label":"oculus","permalink":"/tags/oculus"},{"inline":true,"label":"vr","permalink":"/tags/vr"}],"readingTime":3.125,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"virtual-reality-and-the-future-of-web-based-gaming","title":"Virtual Reality and the future of Web Based Gaming","tags":["oculus","vr"]},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 20/06/14","permalink":"/playcanvas-update-200614"},"nextItem":{"title":"Meet the PlayCanvas team: Will Eastcott","permalink":"/meet-the-playcanvas-team-will-eastcott"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[35050],{54239:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>n,toc:()=>h});var n=a(99161),i=a(74848),s=a(28453);const o={authors:"christy",slug:"virtual-reality-and-the-future-of-web-based-gaming",title:"Virtual Reality and the future of Web Based Gaming",tags:["oculus","vr"]},r=void 0,l={authorsImageUrls:[void 0]},h=[{value:"What is the Oculus Rift?",id:"what-is-the-oculus-rift",level:2},{value:"Why Virtual reality?",id:"why-virtual-reality",level:2},{value:"The Oculus Rift and\xa0PlayCanvas",id:"the-oculus-rift-andplaycanvas",level:2}];function u(e){const t={a:"a",br:"br",em:"em",h2:"h2",img:"img",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["On Thursday 19th of June we will be ",(0,i.jsx)(t.a,{href:"https://www.meetup.com/London-Indie-Game-Developers/events/185608412/",children:"showcasing"})," some of our recent work with the amazing and exciting Oculus Rift Development Kit. In the build up and anticipation to this event we hope to convey why Virtual Reality and revolutionary hardware from\xa0",(0,i.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Reality_Labs",children:"Oculus VR"}),"\xa0are set to be a part of our future at\xa0",(0,i.jsx)(t.a,{href:"https://playcanvas.com",children:"PlayCanvas"}),". Playing a game in VR is one thing. Making a game in VR...now that really is the future."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(72034).A+"",children:(0,i.jsx)(t.img,{alt:"playcanvas oculus1",src:a(23836).A+"",width:"800",height:"450"})})}),"\n",(0,i.jsx)(t.h2,{id:"what-is-the-oculus-rift",children:"What is the Oculus Rift?"}),"\n",(0,i.jsx)(t.p,{children:"Developed first by then 18 year old Palmer Luckey, two evolutions of its development kit amongst other improvements makes it arguably the most promising virtual reality system to date.\xa0The Oculus Rift is a low latency,head-mounted display that receives two independently rendered images to a screen to be viewed through stereoscope lenses."}),"\n",(0,i.jsx)(t.h2,{id:"why-virtual-reality",children:"Why Virtual reality?"}),"\n",(0,i.jsx)(t.p,{children:"Many virtual reality experiences target immersion, where users interaction can open the door to a reality (even if only partially) that is not their own. \xa0However the technology behind the Oculus lets the user into a much deeper experience. Where extreme latency and narrow fields of vision have prevented previous Virtual Reality technologies from being immersive, they have often proved successful in creating nausea. As humans are sensitive to latencies as low as 20 milliseconds it is important for the technology in question to be as precise and fast as possible."}),"\n",(0,i.jsx)(t.p,{children:"Usually leaving users craning necks and grabbing thin air in disbelief, the Oculus takes over 1000 readings per second and so far is effective enough to trick the mind and simulate a physical presence. The VR industry is now closer to 'telexistance' than ever before. Mark Zuckerberg, the current owner of the technology (following an\xa0acquisition worth $2 billion by Facebook) described its potential, exclaiming \xa0\"Imagine enjoying a courtside seat at a game, studying in a classroom of students and teachers all over the world, or consulting with a doctor face-to-face\u2014just by putting on goggles in your home.\u201d. The Oculus promises that in (hopefully few) years to come, gamers may be able to act and react naturally in what is still a virtual setting."}),"\n",(0,i.jsx)(t.h2,{id:"the-oculus-rift-andplaycanvas",children:"The Oculus Rift and\xa0PlayCanvas"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(17870).A+"",children:(0,i.jsx)(t.img,{alt:"Dave in VR",src:a(9916).A+"",width:"600",height:"450"})}),(0,i.jsx)(t.br,{}),"\n",(0,i.jsx)(t.em,{children:"Oculus Rift support coming soon to PlayCanvas"})]}),"\n",(0,i.jsx)(t.p,{children:"Imagine a future where you open your Internet browser, select a VR ready online game, enable your Oculus headset and transport yourself into the game immediately. Mind blowing? Potentially yes.\xa0This is why we here at PlayCanvas are committed to intertwining the paths of both WebGL and HTML5 technologies with the capabilities of the Oculus Rift. It's crazy to think that VR games could be played and developed by simply opening your favorite web browser."}),"\n",(0,i.jsx)(t.p,{children:"Firefox are already thinking about VR on the web. Chrome are too. Be sure that when VR support fully comes to the web, PlayCanvas will be ready to help you get there faster. Game Developer's have so many challenges to overcome while developing their game that adding VR (or Head-Mounted Display) support\xa0could become just another one of the\xa0features that you'd love to try but never quite have time to do.\xa0However, using PlayCanvas it's simple. Just drop the OculusCamera script onto your camera and we'll do all the magic to make your game render ready for the headset."}),"\n",(0,i.jsx)(t.p,{children:"Hyper-realistic gaming experiences should not be limited to core gaming platforms. When web-based gaming can involve products like the Oculus we're opening up an whole new class of\xa0immersive gaming experiences. The best of the features of the web; low-friction, accessible and shareable; with the best features of the Oculus, immersive, high-end experiences. It's brave new world!"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsxs)(t.strong,{children:["Dave Evans (CTO at PlayCanvas) will be showcasing some of our work with the Oculus Rift on ",(0,i.jsx)(t.a,{href:"https://www.meetup.com/London-Indie-Game-Developers/events/185608412/",children:"June 19th\xa0at the Scenario Bar"}),"."]})," ",(0,i.jsxs)(t.strong,{children:["Check out the Event link\xa0",(0,i.jsx)(t.a,{href:"https://www.meetup.com/London-Indie-Game-Developers/events/185608412/",children:"here"}),"\xa0and\xa0maybe we will see you there!"]})]})]})}function c(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},17870:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/dave-vr-201d6bcf1f579f5dcdedfbb0ba382d26.jpg"},72034:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/playcanvas-oculus1-d5bbaf1ae0391440183ec468f37c46d8.jpg"},9916:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/dave-vr-201d6bcf1f579f5dcdedfbb0ba382d26.jpg"},23836:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/playcanvas-oculus1-d5bbaf1ae0391440183ec468f37c46d8.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>r});var n=a(96540);const i={},s=n.createContext(i);function o(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(s.Provider,{value:t},e.children)}},99161:e=>{e.exports=JSON.parse('{"permalink":"/virtual-reality-and-the-future-of-web-based-gaming","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-19-virtual-reality-and-the-future-of-web-based-gaming.md","source":"@site/blog/2014-06-19-virtual-reality-and-the-future-of-web-based-gaming.md","title":"Virtual Reality and the future of Web Based Gaming","description":"On Thursday 19th of June we will be showcasing some of our recent work with the amazing and exciting Oculus Rift Development Kit. In the build up and anticipation to this event we hope to convey why Virtual Reality and revolutionary hardware from\xa0Oculus VR\xa0are set to be a part of our future at\xa0PlayCanvas. Playing a game in VR is one thing. Making a game in VR...now that really is the future.","date":"2014-06-19T00:00:00.000Z","tags":[{"inline":true,"label":"oculus","permalink":"/tags/oculus"},{"inline":true,"label":"vr","permalink":"/tags/vr"}],"readingTime":3.125,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"virtual-reality-and-the-future-of-web-based-gaming","title":"Virtual Reality and the future of Web Based Gaming","tags":["oculus","vr"]},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 20/06/14","permalink":"/playcanvas-update-200614"},"nextItem":{"title":"Meet the PlayCanvas team: Will Eastcott","permalink":"/meet-the-playcanvas-team-will-eastcott"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/3efe3a9f.8692c106.js b/assets/js/3efe3a9f.8692c106.js
new file mode 100644
index 000000000..2689e86bf
--- /dev/null
+++ b/assets/js/3efe3a9f.8692c106.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[39457],{53376:a=>{a.exports=JSON.parse('{"author":{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"key":"paulo","count":3},"listMetadata":{"permalink":"/authors/paulo","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/3efe3a9f.a9a0ebd8.js b/assets/js/3efe3a9f.a9a0ebd8.js
deleted file mode 100644
index 95056d54e..000000000
--- a/assets/js/3efe3a9f.a9a0ebd8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[39457],{53376:a=>{a.exports=JSON.parse('{"author":{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGBCxiefbbUlw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1654615914498?e=1730332800&v=beta&t=430DvI8uuos5obx7BhhHBqhT5TnNTv3q91eOOg6diII","key":"paulo","count":3},"listMetadata":{"permalink":"/authors/paulo","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/3f9ae9f6.6aa62c3f.js b/assets/js/3f9ae9f6.6aa62c3f.js
deleted file mode 100644
index 2ae50cdd1..000000000
--- a/assets/js/3f9ae9f6.6aa62c3f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[43032],{18322:t=>{t.exports=JSON.parse('{"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam","count":6},{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy","count":21},{"name":"Dave Evans","title":"CTO","page":{"permalink":"/authors/dave"},"socials":{"x":"https://x.com/daredevildave","linkedin":"https://www.linkedin.com/in/davewevans/","github":"https://github.com/daredevildave"},"imageURL":"https://github.com/daredevildave.png","key":"dave","count":97},{"name":"Donovan Hutchence","title":"Staff Software Engineer","page":{"permalink":"/authors/donovan"},"socials":{"x":"https://x.com/slimbuck7","linkedin":"https://www.linkedin.com/in/dhutchence/","github":"https://github.com/slimbuck"},"imageURL":"https://github.com/slimbuck.png","key":"donovan","count":1},{"name":"Elliott Thompson","title":"Software Engineer","page":{"permalink":"/authors/elliott"},"socials":{"x":"https://x.com/elliott_thomps","linkedin":"https://www.linkedin.com/in/ellt92/","github":"https://github.com/ellthompson"},"imageURL":"https://github.com/ellthompson.png","key":"elliott","count":4},{"name":"Mark Lundin","title":"Software Engineer","page":{"permalink":"/authors/mark"},"socials":{"x":"https://x.com/mark_lundin","linkedin":"https://www.linkedin.com/in/marklundin2/","github":"https://github.com/marklundin"},"imageURL":"https://github.com/marklundin.png","key":"mark","count":1},{"name":"Martin Valigursky","title":"Software Engineer","page":{"permalink":"/authors/martin"},"socials":{"x":"https://x.com/ValigurskyM","linkedin":"https://www.linkedin.com/in/martin-valigursky/","github":"https://github.com/mvaligursky"},"imageURL":"https://github.com/mvaligursky.png","key":"martin","count":1},{"name":"Nathan Patel","title":"Technical Blogger","page":{"permalink":"/authors/nathan"},"socials":{"linkedin":"https://www.linkedin.com/in/nathan-patel-1b7539101/","github":"https://github.com/gnatpat"},"imageURL":"https://github.com/gnatpat.png","key":"nathan","count":3},{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGBCxiefbbUlw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1654615914498?e=1730332800&v=beta&t=430DvI8uuos5obx7BhhHBqhT5TnNTv3q91eOOg6diII","key":"paulo","count":3},{"name":"Ray Tran","title":"Software Engineer","page":{"permalink":"/authors/ray"},"socials":{"x":"https://x.com/RayT_uk","linkedin":"https://www.linkedin.com/in/raytranuk/","github":"https://github.com/raytranuk"},"imageURL":"https://github.com/raytranuk.png","key":"ray","count":1},{"name":"Steven Yau","title":"Partner Relations Manager","page":{"permalink":"/authors/steven"},"socials":{"x":"https://x.com/yaustar","linkedin":"https://www.linkedin.com/in/stevenyau/","github":"https://github.com/yaustar"},"imageURL":"https://github.com/yaustar.png","key":"steven","count":25},{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will","count":72}]}')}}]);
\ No newline at end of file
diff --git a/assets/js/3f9ae9f6.df871b7d.js b/assets/js/3f9ae9f6.df871b7d.js
new file mode 100644
index 000000000..3a8f76aa2
--- /dev/null
+++ b/assets/js/3f9ae9f6.df871b7d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[43032],{18322:t=>{t.exports=JSON.parse('{"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam","count":6},{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy","count":21},{"name":"Dave Evans","title":"CTO","page":{"permalink":"/authors/dave"},"socials":{"x":"https://x.com/daredevildave","linkedin":"https://www.linkedin.com/in/davewevans/","github":"https://github.com/daredevildave"},"imageURL":"https://github.com/daredevildave.png","key":"dave","count":97},{"name":"Donovan Hutchence","title":"Staff Software Engineer","page":{"permalink":"/authors/donovan"},"socials":{"x":"https://x.com/slimbuck7","linkedin":"https://www.linkedin.com/in/dhutchence/","github":"https://github.com/slimbuck"},"imageURL":"https://github.com/slimbuck.png","key":"donovan","count":1},{"name":"Elliott Thompson","title":"Software Engineer","page":{"permalink":"/authors/elliott"},"socials":{"x":"https://x.com/elliott_thomps","linkedin":"https://www.linkedin.com/in/ellt92/","github":"https://github.com/ellthompson"},"imageURL":"https://github.com/ellthompson.png","key":"elliott","count":4},{"name":"Mark Lundin","title":"Software Engineer","page":{"permalink":"/authors/mark"},"socials":{"x":"https://x.com/mark_lundin","linkedin":"https://www.linkedin.com/in/marklundin2/","github":"https://github.com/marklundin"},"imageURL":"https://github.com/marklundin.png","key":"mark","count":1},{"name":"Martin Valigursky","title":"Software Engineer","page":{"permalink":"/authors/martin"},"socials":{"x":"https://x.com/ValigurskyM","linkedin":"https://www.linkedin.com/in/martin-valigursky/","github":"https://github.com/mvaligursky"},"imageURL":"https://github.com/mvaligursky.png","key":"martin","count":1},{"name":"Nathan Patel","title":"Technical Blogger","page":{"permalink":"/authors/nathan"},"socials":{"linkedin":"https://www.linkedin.com/in/nathan-patel-1b7539101/","github":"https://github.com/gnatpat"},"imageURL":"https://github.com/gnatpat.png","key":"nathan","count":3},{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"key":"paulo","count":3},{"name":"Ray Tran","title":"Software Engineer","page":{"permalink":"/authors/ray"},"socials":{"x":"https://x.com/RayT_uk","linkedin":"https://www.linkedin.com/in/raytranuk/","github":"https://github.com/raytranuk"},"imageURL":"https://github.com/raytranuk.png","key":"ray","count":1},{"name":"Steven Yau","title":"Partner Relations Manager","page":{"permalink":"/authors/steven"},"socials":{"x":"https://x.com/yaustar","linkedin":"https://www.linkedin.com/in/stevenyau/","github":"https://github.com/yaustar"},"imageURL":"https://github.com/yaustar.png","key":"steven","count":25},{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will","count":72}]}')}}]);
\ No newline at end of file
diff --git a/assets/js/41291bab.c3dc212c.js b/assets/js/41291bab.16e46076.js
similarity index 72%
rename from assets/js/41291bab.c3dc212c.js
rename to assets/js/41291bab.16e46076.js
index 6bcbb0ec9..78a5803ec 100644
--- a/assets/js/41291bab.c3dc212c.js
+++ b/assets/js/41291bab.16e46076.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[21185],{66202:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>r,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>n,toc:()=>c});var n=t(89614),s=t(74848),o=t(28453);const i={authors:"adam",slug:"playcanvas-update-080814",title:"PlayCanvas Update 08/08/14"},l=void 0,r={authorsImageUrls:[void 0]},c=[{value:"SIGGRAPH",id:"siggraph",level:3},{value:"gamescom\xa0and GDC Europe",id:"gamescomand-gdc-europe",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function p(e){const a={a:"a",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:"This week, we're\xa0preparing to attend gamescom, GDC Europe and SIGGRAPH.\xa0Here's a quick reminder:"}),"\n",(0,s.jsx)(a.h3,{id:"siggraph",children:"SIGGRAPH"}),"\n",(0,s.jsxs)(a.p,{children:["In a few days PlayCanvas will be at\xa0",(0,s.jsx)(a.a,{href:"http://s2014.siggraph.org/",children:"SIGGRAPH"}),". We'll be demonstrating how you can use PlayCanvas to develop\xa03D games for mobile platforms. For anyone lucky enough to attend, we'll be at\xa0",(0,s.jsx)(a.a,{href:"http://s2014.siggraph.org/exhibitors-advertisers/siggraph-2014-mobile-pavilion",children:"Mobile Pavilion"}),"\xa0#933, in conjunction with ARM - you're all welcome to pay us a visit. Or\xa0",(0,s.jsx)(a.a,{href:"mailto:info@playcanvas.com",children:"get in touch"}),"\xa0if you'd like to set up a meeting."]}),"\n",(0,s.jsx)(a.h3,{id:"gamescomand-gdc-europe",children:"gamescom\xa0and GDC Europe"}),"\n",(0,s.jsxs)(a.p,{children:["We'll also be at ",(0,s.jsx)(a.a,{href:"https://twitter.com/GDC_Europe",children:"GDC Europe"})," and\xa0",(0,s.jsx)(a.a,{href:"https://www.gamescom.global/",children:"gamescom"}),".\xa0",(0,s.jsx)(a.a,{href:"mailto:info@playcanvas.com",children:"Get in touch"}),"\xa0if you'd like to set up a meeting or see an up-close demo of PlayCanvas."]}),"\n",(0,s.jsx)(a.p,{children:"Watch this space for SIGGRAPH and gamescom\xa0updates\xa0over the next week!"}),"\n",(0,s.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(a.li,{children:["Like the\xa0",(0,s.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},28453:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>l});var n=t(96540);const s={},o=n.createContext(s);function i(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:a},e.children)}},89614:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-080814","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-08-08-playcanvas-update-080814.md","source":"@site/blog/2014-08-08-playcanvas-update-080814.md","title":"PlayCanvas Update 08/08/14","description":"This week, we\'re\xa0preparing to attend gamescom, GDC Europe and SIGGRAPH.\xa0Here\'s a quick reminder:","date":"2014-08-08T00:00:00.000Z","tags":[],"readingTime":0.725,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-080814","title":"PlayCanvas Update 08/08/14"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 15/08/14","permalink":"/playcanvas-update-150814"},"nextItem":{"title":"PlayCanvas Update 04/08/14","permalink":"/playcanvas-update-040814"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[21185],{66202:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>i,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>t,toc:()=>c});var t=n(89614),s=n(74848),o=n(28453);const l={authors:"adam",slug:"playcanvas-update-080814",title:"PlayCanvas Update 08/08/14"},r=void 0,i={authorsImageUrls:[void 0]},c=[{value:"SIGGRAPH",id:"siggraph",level:3},{value:"gamescom\xa0and GDC Europe",id:"gamescomand-gdc-europe",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function p(e){const a={a:"a",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:"This week, we're\xa0preparing to attend gamescom, GDC Europe and SIGGRAPH.\xa0Here's a quick reminder:"}),"\n",(0,s.jsx)(a.h3,{id:"siggraph",children:"SIGGRAPH"}),"\n",(0,s.jsxs)(a.p,{children:["In a few days PlayCanvas will be at\xa0",(0,s.jsx)(a.a,{href:"http://s2014.siggraph.org/",children:"SIGGRAPH"}),". We'll be demonstrating how you can use PlayCanvas to develop\xa03D games for mobile platforms. For anyone lucky enough to attend, we'll be at\xa0",(0,s.jsx)(a.a,{href:"http://s2014.siggraph.org/exhibitors-advertisers/siggraph-2014-mobile-pavilion",children:"Mobile Pavilion"}),"\xa0#933, in conjunction with ARM - you're all welcome to pay us a visit. Or\xa0",(0,s.jsx)(a.a,{href:"mailto:info@playcanvas.com",children:"get in touch"}),"\xa0if you'd like to set up a meeting."]}),"\n",(0,s.jsx)(a.h3,{id:"gamescomand-gdc-europe",children:"gamescom\xa0and GDC Europe"}),"\n",(0,s.jsxs)(a.p,{children:["We'll also be at ",(0,s.jsx)(a.a,{href:"https://twitter.com/GDC_Europe",children:"GDC Europe"})," and\xa0",(0,s.jsx)(a.a,{href:"https://www.gamescom.global/",children:"gamescom"}),".\xa0",(0,s.jsx)(a.a,{href:"mailto:info@playcanvas.com",children:"Get in touch"}),"\xa0if you'd like to set up a meeting or see an up-close demo of PlayCanvas."]}),"\n",(0,s.jsx)(a.p,{children:"Watch this space for SIGGRAPH and gamescom\xa0updates\xa0over the next week!"}),"\n",(0,s.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(a.li,{children:["Like the\xa0",(0,s.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},28453:(e,a,n)=>{n.d(a,{R:()=>l,x:()=>r});var t=n(96540);const s={},o=t.createContext(s);function l(e){const a=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(o.Provider,{value:a},e.children)}},89614:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-080814","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-08-08-playcanvas-update-080814.md","source":"@site/blog/2014-08-08-playcanvas-update-080814.md","title":"PlayCanvas Update 08/08/14","description":"This week, we\'re\xa0preparing to attend gamescom, GDC Europe and SIGGRAPH.\xa0Here\'s a quick reminder:","date":"2014-08-08T00:00:00.000Z","tags":[],"readingTime":0.725,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-080814","title":"PlayCanvas Update 08/08/14"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 15/08/14","permalink":"/playcanvas-update-150814"},"nextItem":{"title":"PlayCanvas Update 04/08/14","permalink":"/playcanvas-update-040814"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/429acb87.eb4bee18.js b/assets/js/429acb87.da41687b.js
similarity index 64%
rename from assets/js/429acb87.eb4bee18.js
rename to assets/js/429acb87.da41687b.js
index fffef447b..1cff5da45 100644
--- a/assets/js/429acb87.eb4bee18.js
+++ b/assets/js/429acb87.da41687b.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[55119],{7998:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>n,toc:()=>p});var n=t(84047),s=t(74848),o=t(28453);const r={authors:"adam",slug:"playcanvas-update-18714",title:"PlayCanvas Update 18/7/14"},l=void 0,i={authorsImageUrls:[void 0]},p=[];function c(e){const a={p:"p",...(0,o.R)(),...e.components};return(0,s.jsx)(a.p,{children:"Welcome PlayCanvas fans! Tea and coffee spillages have menaced the office this week but still we carry on. Here are the updates for this week."})}function d(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},28453:(e,a,t)=>{t.d(a,{R:()=>r,x:()=>l});var n=t(96540);const s={},o=n.createContext(s);function r(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(o.Provider,{value:a},e.children)}},84047:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-18714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-18-playcanvas-update-18714.md","source":"@site/blog/2014-07-18-playcanvas-update-18714.md","title":"PlayCanvas Update 18/7/14","description":"Welcome PlayCanvas fans! Tea and coffee spillages have menaced the office this week but still we carry on. Here are the updates for this week.","date":"2014-07-18T00:00:00.000Z","tags":[],"readingTime":1.53,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-18714","title":"PlayCanvas Update 18/7/14"},"unlisted":false,"prevItem":{"title":"SWOOOP @ LadyCADE","permalink":"/swooop-ladycade"},"nextItem":{"title":"developer.playcanvas.com is open source","permalink":"/developer-playcanvas-com-is-open-source"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[55119],{7998:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>n,toc:()=>p});var n=t(84047),s=t(74848),o=t(28453);const r={authors:"adam",slug:"playcanvas-update-18714",title:"PlayCanvas Update 18/7/14"},l=void 0,c={authorsImageUrls:[void 0]},p=[];function i(e){const a={p:"p",...(0,o.R)(),...e.components};return(0,s.jsx)(a.p,{children:"Welcome PlayCanvas fans! Tea and coffee spillages have menaced the office this week but still we carry on. Here are the updates for this week."})}function d(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(i,{...e})}):i(e)}},28453:(e,a,t)=>{t.d(a,{R:()=>r,x:()=>l});var n=t(96540);const s={},o=n.createContext(s);function r(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(o.Provider,{value:a},e.children)}},84047:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-18714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-18-playcanvas-update-18714.md","source":"@site/blog/2014-07-18-playcanvas-update-18714.md","title":"PlayCanvas Update 18/7/14","description":"Welcome PlayCanvas fans! Tea and coffee spillages have menaced the office this week but still we carry on. Here are the updates for this week.","date":"2014-07-18T00:00:00.000Z","tags":[],"readingTime":1.53,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-18714","title":"PlayCanvas Update 18/7/14"},"unlisted":false,"prevItem":{"title":"SWOOOP @ LadyCADE","permalink":"/swooop-ladycade"},"nextItem":{"title":"developer.playcanvas.com is open source","permalink":"/developer-playcanvas-com-is-open-source"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/4a374aca.91f2ebea.js b/assets/js/4a374aca.342666d9.js
similarity index 90%
rename from assets/js/4a374aca.91f2ebea.js
rename to assets/js/4a374aca.342666d9.js
index cbff46a89..5a4fe1823 100644
--- a/assets/js/4a374aca.91f2ebea.js
+++ b/assets/js/4a374aca.342666d9.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[77309],{10947:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>h,default:()=>u,frontMatter:()=>l,metadata:()=>n,toc:()=>d});var n=a(1158),i=a(74848),o=a(28453),s=a(13554),r=a.n(s);const l={authors:"paulo",slug:"webar-experiences-developer-spotlight-with-animech",title:"Web AR Experiences - Developer Spotlight with Animech",tags:["ar","webxr","spotlight"]},h=void 0,c={authorsImageUrls:[void 0]},d=[];function p(e){const t={a:"a",em:"em",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"iframe-container",children:(0,i.jsx)("iframe",{loading:"lazy",width:"560",height:"315",src:"https://www.youtube.com/embed/LLuB-2OpcFo",title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0})}),"\n",(0,i.jsx)(t.p,{children:"Welcome to the third instalment of Developer Spotlight, a series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web."}),"\n",(0,i.jsxs)(t.p,{children:["Today we are excited to be joined by Staffan Hagberg, CMO of ",(0,i.jsx)(t.a,{href:"https://animech.com/en/",children:"Animech"}),"."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Hi Staffan, welcome to Developer Spotlight! Tell us about yourself and Animech!"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://www.animech.com/en/",children:"Animech"})," was founded back in 2007, in the city of Uppsala, Sweden. With a mix of 3D artists, engineers, developers, and UI/UX experts, we have a team of 40 people and all the competence in-house. The studio started in the early days of real-time 3D. It was a mix of CAD engineers and developers who realized the power of visualization for selling complex products in the life sciences segment."]}),"\n",(0,i.jsx)(t.p,{children:"Since then, we have visualized pretty much anything you can think of online and offline. We\u2019ve worked in VR, AR, MR, phones, tablets, desktops, and pretty much any other device that has a browser. We have developed VR applications for cars, the first real-time 3D configurator in native WebGL ever developed, one of the world's first configurators for Oculus Rift Devkit and much more."}),"\n",(0,i.jsx)(t.p,{children:"We have also visualized experiences for hotel safes, medical instruments and lab products for 7 of the 10 largest life science companies, as well as built 3D converters from Unreal to glTF and a bunch of custom tools specially built for PlayCanvas."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://www.animech.com/en/articles/3d-rendering-in-realtime",children:"Our core business is real-time 3D"}),". We push the boundaries every day trying to invent new ways of using 3D, where our solution makes the difference."]}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/animech-bathroom.mp4"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsxs)(t.em,{children:[(0,i.jsx)(t.a,{href:"https://www.inr.se/planera-badrum/planera-badrum-verktyg-3d/",children:"Bathroom Planner"})," for Iconic Nordic Rooms"]})}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Why did Animech choose PlayCanvas?"})}),"\n",(0,i.jsx)(t.p,{children:"After an extensive search for a WebGL-based engine, we evaluated a few and selected PlayCanvas for its performance, out-of-the-box features, its extensibility and its valuable editor. Our customers expect the highest level of visual quality along with a smooth browsing experience - without the need for an app or plugins. PlayCanvas truly helps us deliver."}),"\n",(0,i.jsx)(t.p,{children:"As for our artists\u2019 perspective, they think it was (and still is) the most artist-friendly WebGL editor out there, with the added bonuses that it is open source, and supports many important features, such as PBR, tonemapping, render layers, etc."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Did your team face any initial challenges? How did you overcome them?"})}),"\n",(0,i.jsxs)(t.p,{children:["It's always challenging when customers have high quality ",(0,i.jsx)(t.em,{children:"and"})," performance expectations. Though, at the same time, that is what drives us. Being able to create stunning 3D experiences linked to real business value is a unique opportunity and challenge. Adding AR to that process helps you to stand out against competitors."]}),"\n",(0,i.jsx)(t.p,{children:"Our particular challenge was to dynamically create an AR model of a procedurally generated mesh as a generic function. Our solution was to create a SaaS service that can take of whatever 3D object you\u2019re looking at in PlayCanvas, and on the fly create AR models for both iOS and Android devices (ARKit or ARCore)."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"You\u2019ve built several Web AR experiences. Can you tell us a little about them and how important you think Web AR is today?"})}),"\n",(0,i.jsx)(t.p,{children:"We have been early adopters of both AR and VR, both as standalone applications and on the web. We believe it's important to use AR not as a gimmick, but as an application that provides real value for the user. For example, looking at how that greenhouse would look in your actual backyard or similar. In that sense, Web AR will get more and more important, both as something that stands out but also as something that provides value for users."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(11988).A+"",children:(0,i.jsx)(t.img,{src:a(61046).A+"",width:"2560",height:"1338"})})}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Why do you think that your clients want Web AR in their experiences?"})}),"\n",(0,i.jsx)(t.p,{children:"To offer something more to their customers - both in marketing value and actual value. To help users make smarter, more informed decisions."}),"\n",(0,i.jsx)(t.p,{children:"We have also developed our own web based 3D converter that takes our PlayCanvas 3D models to glTF and USD on the fly. It is a server side solution that takes everything we develop to AR."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How is building a web experience different from a native experience?"})}),"\n",(0,i.jsx)(t.p,{children:"You must optimize for both loading time and performance. The application could be run on a wide range of devices \u2013 from several years old phones to high-end desktops."}),"\n",(0,i.jsx)(t.p,{children:"The application is accessible to a wider audience since they don\u2019t need to install anything."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"What are the team's favorite features of PlayCanvas?"})}),"\n",(0,i.jsx)(t.p,{children:"As a team consisting of both 3D artists and developers, PlayCanvas\u2019 online editor provides a fantastic way to collaborate, prepare and preview our projects before pairing the solution with a stunning web UI or deploying it as a standalone viewer."}),"\n",(0,i.jsx)(t.p,{children:"Our 3D artists also enjoy how the editor is robust and easy to use, and how its design promotes collaboration. Powerful material settings (per-texture UV and color channel, vertex colors, blend types, depth test/write, etc.), flexible texture compression and a fast response by the team when reporting bugs and requesting features are also great."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"What is on the feature wish list for PlayCanvas this year?"})}),"\n",(0,i.jsx)(t.p,{children:"As the future for 3D on the web continues to evolve, we are excited to see support for more accessible 3D formats, such as the glTF standard by the Khronos Group, which PlayCanvas are advocating for as well."}),"\n",(0,i.jsx)(t.p,{children:"Beyond this, here are some things we look forward to:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Node-based shader editor"}),"\n",(0,i.jsx)(t.li,{children:"Support for editor extensions"}),"\n",(0,i.jsx)(t.li,{children:"Post processing (HDR bloom, chromatic aberration, SSAO, motion blur, color grading, eye adaption, etc.)"}),"\n",(0,i.jsx)(t.li,{children:"More customizable asset import options"}),"\n",(0,i.jsx)(t.li,{children:"Reflection probes"}),"\n",(0,i.jsx)(t.li,{children:"Material instances (see Unreal Engine)"}),"\n",(0,i.jsx)(t.li,{children:"Debug visualization (see Unreal Engine\u2019s View Modes)"}),"\n",(0,i.jsx)(t.li,{children:"Expose currently hidden options in the editor (detail maps, etc.)"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How do you see AR and 3D e-commerce evolve over the next few years?"})}),"\n",(0,i.jsx)(t.p,{children:"The possibilities are enormous. The question is when do people actually start using AR. It has been around for many years, lots of interesting solutions and demos have been built, but the real value of AR has not reached the masses yet."}),"\n",(0,i.jsx)(t.p,{children:"I think we are closing in on that though. Just the other day I was about to buy a new espresso coffee machine. One supplier had an AR model online in the e-store with which I could see that it looked good and covered my needs. With just one static USDZ file. It is such an easy way of helping your customer to make the right decision. Imagine how much value you add if you can see configured 3D models in AR and really see the potential of what you are about to buy."}),"\n",(0,i.jsx)(t.p,{children:"Next phase would be to configure and change your 3D model directly in AR-mode which would make the experience even stronger."}),"\n",(0,i.jsx)(t.p,{children:"As the graphics quality gets better and better online and the fashion industry keeps on digitizing their customer journey, AR will probably be the best and easiest way of trying on fashion products like bags, watches, jewelry and clothes. It will reduce faulty orders on a massive scale if you can do a virtual fitting before buying stuff online."}),"\n",(0,i.jsx)(t.p,{children:"Animech helps our customers to get what they want. Simply put: we empower people to make smart decisions through intelligent visualization."}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/animech-cytiva.mp4"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Thank you, Staffan! Is there anything else you'd like to share?"})}),"\n",(0,i.jsxs)(t.p,{children:["You can visit ",(0,i.jsx)(t.a,{href:"https://www.animech.com/",children:"our website here"}),". You can also ",(0,i.jsx)(t.a,{href:"https://twitter.com/AnimechT",children:"follow us on Twitter"}),"! You can also check out our other projects here:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://www.cytivalifesciences.com/apps/aktapilot600/index.html",children:"Life science marketing application Cytiva"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://virtual-showroom.ewellix.com/",children:"Industry marketing application Ewellix"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://www.inr.se/planera-badrum/planera-badrum-verktyg-3d/",children:"Bathroom configurator"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"//configurator.wfi.se/",children:"Work bench configurator, WFI"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"http://assa.aniconfigurator.com/",children:"Safe configurator, ASSA Abloy"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://www.cibeslift.com/se/lift-configurator/",children:"Lift configurator, Cibes lift"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://vaxthusguiden.willabgarden.se/",children:"Greenhouse configurator, Willab garden"})}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},11988:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/developer-spotlight-animech-fjallraven-3dea2322aee3223000e6b7bb3273a5a0.jpg"},61046:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/developer-spotlight-animech-fjallraven-3dea2322aee3223000e6b7bb3273a5a0.jpg"},1158:e=>{e.exports=JSON.parse('{"permalink":"/webar-experiences-developer-spotlight-with-animech","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2022-10-27-webar-experiences-developer-spotlight-with-animech.md","source":"@site/blog/2022-10-27-webar-experiences-developer-spotlight-with-animech.md","title":"Web AR Experiences - Developer Spotlight with Animech","description":"Welcome to the third instalment of Developer Spotlight, a series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web.","date":"2022-10-27T00:00:00.000Z","tags":[{"inline":true,"label":"ar","permalink":"/tags/ar"},{"inline":true,"label":"webxr","permalink":"/tags/webxr"},{"inline":true,"label":"spotlight","permalink":"/tags/spotlight"}],"readingTime":6.44,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGBCxiefbbUlw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1654615914498?e=1730332800&v=beta&t=430DvI8uuos5obx7BhhHBqhT5TnNTv3q91eOOg6diII","key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"webar-experiences-developer-spotlight-with-animech","title":"Web AR Experiences - Developer Spotlight with Animech","tags":["ar","webxr","spotlight"]},"unlisted":false,"prevItem":{"title":"Porting Unreal Scenes to the Browser with PlayCanvas - Developer Spotlight with Leonidas Maliokas","permalink":"/porting-unreal-scenes-to-browser-with-playcanvas-developer-spotlight-with-leonidas-maliokas"},"nextItem":{"title":"glTF Viewer Arrives on Mobile with AR Support","permalink":"/gltf-viewer-arrives-on-mobile-with-ar-support"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[77309],{10947:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>h,default:()=>u,frontMatter:()=>l,metadata:()=>a,toc:()=>d});var a=n(1158),i=n(74848),o=n(28453),s=n(13554),r=n.n(s);const l={authors:"paulo",slug:"webar-experiences-developer-spotlight-with-animech",title:"Web AR Experiences - Developer Spotlight with Animech",tags:["ar","webxr","spotlight"]},h=void 0,c={authorsImageUrls:[void 0]},d=[];function p(e){const t={a:"a",em:"em",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"iframe-container",children:(0,i.jsx)("iframe",{loading:"lazy",width:"560",height:"315",src:"https://www.youtube.com/embed/LLuB-2OpcFo",title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0})}),"\n",(0,i.jsx)(t.p,{children:"Welcome to the third instalment of Developer Spotlight, a series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web."}),"\n",(0,i.jsxs)(t.p,{children:["Today we are excited to be joined by Staffan Hagberg, CMO of ",(0,i.jsx)(t.a,{href:"https://animech.com/en/",children:"Animech"}),"."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Hi Staffan, welcome to Developer Spotlight! Tell us about yourself and Animech!"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://www.animech.com/en/",children:"Animech"})," was founded back in 2007, in the city of Uppsala, Sweden. With a mix of 3D artists, engineers, developers, and UI/UX experts, we have a team of 40 people and all the competence in-house. The studio started in the early days of real-time 3D. It was a mix of CAD engineers and developers who realized the power of visualization for selling complex products in the life sciences segment."]}),"\n",(0,i.jsx)(t.p,{children:"Since then, we have visualized pretty much anything you can think of online and offline. We\u2019ve worked in VR, AR, MR, phones, tablets, desktops, and pretty much any other device that has a browser. We have developed VR applications for cars, the first real-time 3D configurator in native WebGL ever developed, one of the world's first configurators for Oculus Rift Devkit and much more."}),"\n",(0,i.jsx)(t.p,{children:"We have also visualized experiences for hotel safes, medical instruments and lab products for 7 of the 10 largest life science companies, as well as built 3D converters from Unreal to glTF and a bunch of custom tools specially built for PlayCanvas."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://www.animech.com/en/articles/3d-rendering-in-realtime",children:"Our core business is real-time 3D"}),". We push the boundaries every day trying to invent new ways of using 3D, where our solution makes the difference."]}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/animech-bathroom.mp4"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsxs)(t.em,{children:[(0,i.jsx)(t.a,{href:"https://www.inr.se/planera-badrum/planera-badrum-verktyg-3d/",children:"Bathroom Planner"})," for Iconic Nordic Rooms"]})}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Why did Animech choose PlayCanvas?"})}),"\n",(0,i.jsx)(t.p,{children:"After an extensive search for a WebGL-based engine, we evaluated a few and selected PlayCanvas for its performance, out-of-the-box features, its extensibility and its valuable editor. Our customers expect the highest level of visual quality along with a smooth browsing experience - without the need for an app or plugins. PlayCanvas truly helps us deliver."}),"\n",(0,i.jsx)(t.p,{children:"As for our artists\u2019 perspective, they think it was (and still is) the most artist-friendly WebGL editor out there, with the added bonuses that it is open source, and supports many important features, such as PBR, tonemapping, render layers, etc."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Did your team face any initial challenges? How did you overcome them?"})}),"\n",(0,i.jsxs)(t.p,{children:["It's always challenging when customers have high quality ",(0,i.jsx)(t.em,{children:"and"})," performance expectations. Though, at the same time, that is what drives us. Being able to create stunning 3D experiences linked to real business value is a unique opportunity and challenge. Adding AR to that process helps you to stand out against competitors."]}),"\n",(0,i.jsx)(t.p,{children:"Our particular challenge was to dynamically create an AR model of a procedurally generated mesh as a generic function. Our solution was to create a SaaS service that can take of whatever 3D object you\u2019re looking at in PlayCanvas, and on the fly create AR models for both iOS and Android devices (ARKit or ARCore)."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"You\u2019ve built several Web AR experiences. Can you tell us a little about them and how important you think Web AR is today?"})}),"\n",(0,i.jsx)(t.p,{children:"We have been early adopters of both AR and VR, both as standalone applications and on the web. We believe it's important to use AR not as a gimmick, but as an application that provides real value for the user. For example, looking at how that greenhouse would look in your actual backyard or similar. In that sense, Web AR will get more and more important, both as something that stands out but also as something that provides value for users."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(11988).A+"",children:(0,i.jsx)(t.img,{src:n(61046).A+"",width:"2560",height:"1338"})})}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Why do you think that your clients want Web AR in their experiences?"})}),"\n",(0,i.jsx)(t.p,{children:"To offer something more to their customers - both in marketing value and actual value. To help users make smarter, more informed decisions."}),"\n",(0,i.jsx)(t.p,{children:"We have also developed our own web based 3D converter that takes our PlayCanvas 3D models to glTF and USD on the fly. It is a server side solution that takes everything we develop to AR."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How is building a web experience different from a native experience?"})}),"\n",(0,i.jsx)(t.p,{children:"You must optimize for both loading time and performance. The application could be run on a wide range of devices \u2013 from several years old phones to high-end desktops."}),"\n",(0,i.jsx)(t.p,{children:"The application is accessible to a wider audience since they don\u2019t need to install anything."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"What are the team's favorite features of PlayCanvas?"})}),"\n",(0,i.jsx)(t.p,{children:"As a team consisting of both 3D artists and developers, PlayCanvas\u2019 online editor provides a fantastic way to collaborate, prepare and preview our projects before pairing the solution with a stunning web UI or deploying it as a standalone viewer."}),"\n",(0,i.jsx)(t.p,{children:"Our 3D artists also enjoy how the editor is robust and easy to use, and how its design promotes collaboration. Powerful material settings (per-texture UV and color channel, vertex colors, blend types, depth test/write, etc.), flexible texture compression and a fast response by the team when reporting bugs and requesting features are also great."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"What is on the feature wish list for PlayCanvas this year?"})}),"\n",(0,i.jsx)(t.p,{children:"As the future for 3D on the web continues to evolve, we are excited to see support for more accessible 3D formats, such as the glTF standard by the Khronos Group, which PlayCanvas are advocating for as well."}),"\n",(0,i.jsx)(t.p,{children:"Beyond this, here are some things we look forward to:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Node-based shader editor"}),"\n",(0,i.jsx)(t.li,{children:"Support for editor extensions"}),"\n",(0,i.jsx)(t.li,{children:"Post processing (HDR bloom, chromatic aberration, SSAO, motion blur, color grading, eye adaption, etc.)"}),"\n",(0,i.jsx)(t.li,{children:"More customizable asset import options"}),"\n",(0,i.jsx)(t.li,{children:"Reflection probes"}),"\n",(0,i.jsx)(t.li,{children:"Material instances (see Unreal Engine)"}),"\n",(0,i.jsx)(t.li,{children:"Debug visualization (see Unreal Engine\u2019s View Modes)"}),"\n",(0,i.jsx)(t.li,{children:"Expose currently hidden options in the editor (detail maps, etc.)"}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How do you see AR and 3D e-commerce evolve over the next few years?"})}),"\n",(0,i.jsx)(t.p,{children:"The possibilities are enormous. The question is when do people actually start using AR. It has been around for many years, lots of interesting solutions and demos have been built, but the real value of AR has not reached the masses yet."}),"\n",(0,i.jsx)(t.p,{children:"I think we are closing in on that though. Just the other day I was about to buy a new espresso coffee machine. One supplier had an AR model online in the e-store with which I could see that it looked good and covered my needs. With just one static USDZ file. It is such an easy way of helping your customer to make the right decision. Imagine how much value you add if you can see configured 3D models in AR and really see the potential of what you are about to buy."}),"\n",(0,i.jsx)(t.p,{children:"Next phase would be to configure and change your 3D model directly in AR-mode which would make the experience even stronger."}),"\n",(0,i.jsx)(t.p,{children:"As the graphics quality gets better and better online and the fashion industry keeps on digitizing their customer journey, AR will probably be the best and easiest way of trying on fashion products like bags, watches, jewelry and clothes. It will reduce faulty orders on a massive scale if you can do a virtual fitting before buying stuff online."}),"\n",(0,i.jsx)(t.p,{children:"Animech helps our customers to get what they want. Simply put: we empower people to make smart decisions through intelligent visualization."}),"\n",(0,i.jsx)(r(),{playing:!0,controls:!0,url:"/img/animech-cytiva.mp4"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Thank you, Staffan! Is there anything else you'd like to share?"})}),"\n",(0,i.jsxs)(t.p,{children:["You can visit ",(0,i.jsx)(t.a,{href:"https://www.animech.com/",children:"our website here"}),". You can also ",(0,i.jsx)(t.a,{href:"https://twitter.com/AnimechT",children:"follow us on Twitter"}),"! You can also check out our other projects here:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://www.cytivalifesciences.com/apps/aktapilot600/index.html",children:"Life science marketing application Cytiva"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://virtual-showroom.ewellix.com/",children:"Industry marketing application Ewellix"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://www.inr.se/planera-badrum/planera-badrum-verktyg-3d/",children:"Bathroom configurator"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"//configurator.wfi.se/",children:"Work bench configurator, WFI"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"http://assa.aniconfigurator.com/",children:"Safe configurator, ASSA Abloy"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://www.cibeslift.com/se/lift-configurator/",children:"Lift configurator, Cibes lift"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://vaxthusguiden.willabgarden.se/",children:"Greenhouse configurator, Willab garden"})}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},11988:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/files/developer-spotlight-animech-fjallraven-3dea2322aee3223000e6b7bb3273a5a0.jpg"},61046:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/developer-spotlight-animech-fjallraven-3dea2322aee3223000e6b7bb3273a5a0.jpg"},1158:e=>{e.exports=JSON.parse('{"permalink":"/webar-experiences-developer-spotlight-with-animech","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2022-10-27-webar-experiences-developer-spotlight-with-animech.md","source":"@site/blog/2022-10-27-webar-experiences-developer-spotlight-with-animech.md","title":"Web AR Experiences - Developer Spotlight with Animech","description":"Welcome to the third instalment of Developer Spotlight, a series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web.","date":"2022-10-27T00:00:00.000Z","tags":[{"inline":true,"label":"ar","permalink":"/tags/ar"},{"inline":true,"label":"webxr","permalink":"/tags/webxr"},{"inline":true,"label":"spotlight","permalink":"/tags/spotlight"}],"readingTime":6.44,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"webar-experiences-developer-spotlight-with-animech","title":"Web AR Experiences - Developer Spotlight with Animech","tags":["ar","webxr","spotlight"]},"unlisted":false,"prevItem":{"title":"Porting Unreal Scenes to the Browser with PlayCanvas - Developer Spotlight with Leonidas Maliokas","permalink":"/porting-unreal-scenes-to-browser-with-playcanvas-developer-spotlight-with-leonidas-maliokas"},"nextItem":{"title":"glTF Viewer Arrives on Mobile with AR Support","permalink":"/gltf-viewer-arrives-on-mobile-with-ar-support"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/51643f30.8ed52a71.js b/assets/js/51643f30.2db8fe58.js
similarity index 91%
rename from assets/js/51643f30.8ed52a71.js
rename to assets/js/51643f30.2db8fe58.js
index 26e656b34..a765c8c2f 100644
--- a/assets/js/51643f30.8ed52a71.js
+++ b/assets/js/51643f30.2db8fe58.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[59409],{48820:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>h});var o=n(35999),i=n(74848),a=n(28453);const r={authors:"christy",slug:"meet-the-playcanvas-team-will-eastcott",title:"Meet the PlayCanvas team: Will Eastcott",tags:["team"]},s=void 0,l={authorsImageUrls:[void 0]},h=[{value:"The Quick-fire Round (this is where things get a little interesting)",id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",level:4}];function c(e){const t={a:"a",blockquote:"blockquote",h4:"h4",img:"img",p:"p",strong:"strong",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Our recent commitment to open sourcing is not the only thing we at PlayCanvas are open about. To help get in touch with our community, we are starting a series of posts about the people behind PlayCanvas. From the informative down to the outright silly, step deeper into our world."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Will",src:n(94243).A+"",width:"640",height:"427"})}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:'"I wanted to work at Marvel Comics when I was 18 but my coding skills won out which is probably for the best!"'}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"First up is Will, our CEO and co-founder, from everyone's favorite sleepy little town Bedford, England!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How did you get into the video games industry?"})}),"\n",(0,i.jsxs)(t.p,{children:["I never intended to get into making games. During my time at Imperial College in London where I studied Computing, I had to do a 6 month industrial placement. I joined a VR company that's still around today in the form of\xa0",(0,i.jsx)(t.a,{href:"https://www.virtalis.com/",children:"Virtalis"}),". But being the late 90s, the technology was underwhelming and I wanted to be back near to London, so I took an interview at Criterion Software where I started out as an engineer developing RenderWare. If you haven't heard of RenderWare before, it powered hundreds of PS2 titles (including the GTA series). I think it's fair to say, I learned a lot working with such awesome teams."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Can you briefly describe your role at PlayCanvas?"})}),"\n",(0,i.jsx)(t.p,{children:"I'm CEO. I'm a technical guy, so although I don't do much coding myself these days, I know enough to keep the coding team on their toes. I spend most of my time dealing with the mechanics of running the business and promoting what we're doing out to the wider world. If I had to pick one thing I do and do best, it's predicting where we need to be 5 years from now and figuring out how we get there. So far, so good!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"What is your favorite aspect of PlayCanvas' service?"})}),"\n",(0,i.jsx)(t.p,{children:"Tough question, there's a lot to choose from. For me, it's the collaborative nature of the tools. It was the killer feature of Google Docs that completely blew me away. We're doing the same thing for game developers. It really is a revelation once you've experienced it."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How is PlayCanvas changing the way people make games?"})}),"\n",(0,i.jsx)(t.p,{children:"It's becoming more transparent. If you choose to work in public, I can see your project at any time I want to. I can play your games any time, anywhere and on any device. We're making the process more collaborative, with a multi-user editor where you can see the game come together live before your eyes. And we're opening game development up to a far wider audience, by making the tools incredibly accessible. Did I mention we're open source now?"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Where do you see web based gaming in the future?"})}),"\n",(0,i.jsx)(t.p,{children:"I see it becoming the pinnacle in convenience. Ultimate accessibility. Completely cross-platform. And even more dynamic and open than it is today."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Can you describe one interesting thing about yourself?"})}),"\n",(0,i.jsx)(t.p,{children:"I wanted to work at Marvel Comics when I was 18. I used to take my portfolio along to the London Comic Art Convention looking for a job. In the end, my coding skills won out which is probably for the best!"}),"\n",(0,i.jsx)(t.h4,{id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",children:"The Quick-fire Round (this is where things get a little interesting)"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Zelda or Final fantasy?"})}),"\n",(0,i.jsx)(t.p,{children:"Zelda"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"COD or Battlefield?"})}),"\n",(0,i.jsx)(t.p,{children:"COD"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Mario or Sonic?"})}),"\n",(0,i.jsx)(t.p,{children:"Mario"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Favorite game of all time?"})}),"\n",(0,i.jsx)(t.p,{children:"No contest: Elite."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Greatest Gaming achievement?"})}),"\n",(0,i.jsx)(t.p,{children:"Can losing be an achievement? I played the UK Nintendo Champion at Street Fighter 2 in 1993. I left his Dhalsim battered and bruised with a mere pixel of health remaining!"})]})}function d(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},94243:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/team-will-2014-10bff2aa5c4a5464cd6574f638da7901.jpg"},28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>s});var o=n(96540);const i={},a=o.createContext(i);function r(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),o.createElement(a.Provider,{value:t},e.children)}},35999:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-will-eastcott","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-18-meet-the-playcanvas-team-will-eastcott.md","source":"@site/blog/2014-06-18-meet-the-playcanvas-team-will-eastcott.md","title":"Meet the PlayCanvas team: Will Eastcott","description":"Our recent commitment to open sourcing is not the only thing we at PlayCanvas are open about. To help get in touch with our community, we are starting a series of posts about the people behind PlayCanvas. From the informative down to the outright silly, step deeper into our world.","date":"2014-06-18T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":2.99,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-will-eastcott","title":"Meet the PlayCanvas team: Will Eastcott","tags":["team"]},"unlisted":false,"prevItem":{"title":"Virtual Reality and the future of Web Based Gaming","permalink":"/virtual-reality-and-the-future-of-web-based-gaming"},"nextItem":{"title":"Platform Game Starter Kit","permalink":"/platform-game-starter-kit"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[59409],{48820:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>h});var o=n(35999),i=n(74848),a=n(28453);const r={authors:"christy",slug:"meet-the-playcanvas-team-will-eastcott",title:"Meet the PlayCanvas team: Will Eastcott",tags:["team"]},s=void 0,l={authorsImageUrls:[void 0]},h=[{value:"The Quick-fire Round (this is where things get a little interesting)",id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",level:4}];function c(e){const t={a:"a",blockquote:"blockquote",h4:"h4",img:"img",p:"p",strong:"strong",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Our recent commitment to open sourcing is not the only thing we at PlayCanvas are open about. To help get in touch with our community, we are starting a series of posts about the people behind PlayCanvas. From the informative down to the outright silly, step deeper into our world."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Will",src:n(94243).A+"",width:"640",height:"427"})}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:'"I wanted to work at Marvel Comics when I was 18 but my coding skills won out which is probably for the best!"'}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"First up is Will, our CEO and co-founder, from everyone's favorite sleepy little town Bedford, England!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How did you get into the video games industry?"})}),"\n",(0,i.jsxs)(t.p,{children:["I never intended to get into making games. During my time at Imperial College in London where I studied Computing, I had to do a 6 month industrial placement. I joined a VR company that's still around today in the form of\xa0",(0,i.jsx)(t.a,{href:"https://www.virtalis.com/",children:"Virtalis"}),". But being the late 90s, the technology was underwhelming and I wanted to be back near to London, so I took an interview at Criterion Software where I started out as an engineer developing RenderWare. If you haven't heard of RenderWare before, it powered hundreds of PS2 titles (including the GTA series). I think it's fair to say, I learned a lot working with such awesome teams."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Can you briefly describe your role at PlayCanvas?"})}),"\n",(0,i.jsx)(t.p,{children:"I'm CEO. I'm a technical guy, so although I don't do much coding myself these days, I know enough to keep the coding team on their toes. I spend most of my time dealing with the mechanics of running the business and promoting what we're doing out to the wider world. If I had to pick one thing I do and do best, it's predicting where we need to be 5 years from now and figuring out how we get there. So far, so good!"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"What is your favorite aspect of PlayCanvas' service?"})}),"\n",(0,i.jsx)(t.p,{children:"Tough question, there's a lot to choose from. For me, it's the collaborative nature of the tools. It was the killer feature of Google Docs that completely blew me away. We're doing the same thing for game developers. It really is a revelation once you've experienced it."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"How is PlayCanvas changing the way people make games?"})}),"\n",(0,i.jsx)(t.p,{children:"It's becoming more transparent. If you choose to work in public, I can see your project at any time I want to. I can play your games any time, anywhere and on any device. We're making the process more collaborative, with a multi-user editor where you can see the game come together live before your eyes. And we're opening game development up to a far wider audience, by making the tools incredibly accessible. Did I mention we're open source now?"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Where do you see web based gaming in the future?"})}),"\n",(0,i.jsx)(t.p,{children:"I see it becoming the pinnacle in convenience. Ultimate accessibility. Completely cross-platform. And even more dynamic and open than it is today."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Can you describe one interesting thing about yourself?"})}),"\n",(0,i.jsx)(t.p,{children:"I wanted to work at Marvel Comics when I was 18. I used to take my portfolio along to the London Comic Art Convention looking for a job. In the end, my coding skills won out which is probably for the best!"}),"\n",(0,i.jsx)(t.h4,{id:"the-quick-fire-round-this-is-where-things-get-a-little-interesting",children:"The Quick-fire Round (this is where things get a little interesting)"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Zelda or Final fantasy?"})}),"\n",(0,i.jsx)(t.p,{children:"Zelda"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"COD or Battlefield?"})}),"\n",(0,i.jsx)(t.p,{children:"COD"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Mario or Sonic?"})}),"\n",(0,i.jsx)(t.p,{children:"Mario"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Favorite game of all time?"})}),"\n",(0,i.jsx)(t.p,{children:"No contest: Elite."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Greatest Gaming achievement?"})}),"\n",(0,i.jsx)(t.p,{children:"Can losing be an achievement? I played the UK Nintendo Champion at Street Fighter 2 in 1993. I left his Dhalsim battered and bruised with a mere pixel of health remaining!"})]})}function d(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},94243:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/team-will-2014-10bff2aa5c4a5464cd6574f638da7901.jpg"},28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>s});var o=n(96540);const i={},a=o.createContext(i);function r(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),o.createElement(a.Provider,{value:t},e.children)}},35999:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-will-eastcott","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-18-meet-the-playcanvas-team-will-eastcott.md","source":"@site/blog/2014-06-18-meet-the-playcanvas-team-will-eastcott.md","title":"Meet the PlayCanvas team: Will Eastcott","description":"Our recent commitment to open sourcing is not the only thing we at PlayCanvas are open about. To help get in touch with our community, we are starting a series of posts about the people behind PlayCanvas. From the informative down to the outright silly, step deeper into our world.","date":"2014-06-18T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":2.99,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-will-eastcott","title":"Meet the PlayCanvas team: Will Eastcott","tags":["team"]},"unlisted":false,"prevItem":{"title":"Virtual Reality and the future of Web Based Gaming","permalink":"/virtual-reality-and-the-future-of-web-based-gaming"},"nextItem":{"title":"Platform Game Starter Kit","permalink":"/platform-game-starter-kit"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/540cbc09.d936e03f.js b/assets/js/540cbc09.9749c15f.js
similarity index 94%
rename from assets/js/540cbc09.d936e03f.js
rename to assets/js/540cbc09.9749c15f.js
index 3c2a9c8d4..5c6f2a901 100644
--- a/assets/js/540cbc09.d936e03f.js
+++ b/assets/js/540cbc09.9749c15f.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[20375],{75202:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>t,toc:()=>d});var t=n(63376),s=n(74848),i=n(28453);const o={authors:"christy",slug:"playcanvas-in-2014-a-year-in-review",title:"PlayCanvas in 2014: A Year In Review"},r=void 0,l={authorsImageUrls:[void 0]},d=[{value:"Features",id:"features",level:2},{value:"Open-source",id:"open-source",level:3},{value:"Asset Store",id:"asset-store",level:3},{value:"Physically Based Rendering",id:"physically-based-rendering",level:3},{value:"Complete Website Redesign",id:"complete-website-redesign",level:3},{value:"DevLogs",id:"devlogs",level:3},{value:"Watch and Star Projects",id:"watch-and-star-projects",level:3},{value:"Particle System",id:"particle-system",level:3},{value:"iOS Export",id:"ios-export",level:3},{value:"Material Editing",id:"material-editing",level:3},{value:"SWOOOP",id:"swooop",level:3},{value:"TANX",id:"tanx",level:3},{value:"PLAYHACK",id:"playhack",level:3},{value:"Things to look forward to in 2015",id:"things-to-look-forward-to-in-2015",level:2},{value:"Physically-Based Rendering Workflow",id:"physically-based-rendering-workflow",level:3},{value:"Massive Editor Improvements",id:"massive-editor-improvements",level:3},{value:"Enhanced Store",id:"enhanced-store",level:3},{value:"What Do You Want To See?",id:"what-do-you-want-to-see",level:2}];function h(e){const a={a:"a",br:"br",em:"em",h2:"h2",h3:"h3",img:"img",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"In 2011, PlayCanvas started its journey as the world's first cloud-hosted game development platform, and over three years later we\u2019re still giving you the next generation toolset to build, share and play video games."})}),"\n",(0,s.jsx)(a.p,{children:"In 2014 our community has grown from roughly 2,000 to over 20,000 users and there has been over 2,000,000 views of PlayCanvas projects. There really has never been a better time to join us! So without further ado, here\u2019s a look back at PlayCanvas and the Games industry in 2014 and glance ahead into the new year."}),"\n",(0,s.jsx)(a.h2,{id:"features",children:"Features"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(92199).A+"",children:(0,s.jsx)(a.img,{alt:"SWOOOP background",src:n(70173).A+"",width:"800",height:"353"})})}),"\n",(0,s.jsx)(a.h3,{id:"open-source",children:"Open-source"}),"\n",(0,s.jsxs)(a.p,{children:["The entire runtime engine is available right now on ",(0,s.jsx)(a.a,{href:"https://github.com/playcanvas/engine",children:"GitHub"})," under the lovely ",(0,s.jsx)(a.a,{href:"https://opensource.org/license/mit/",children:"MIT license"}),". Which means you can download it, fork it, and generally use it for anything you like."]}),"\n",(0,s.jsx)(a.h3,{id:"asset-store",children:"Asset Store"}),"\n",(0,s.jsxs)(a.p,{children:["We recently announced the PlayCanvas Asset Store, which is a huge deal for us. As the PlayCanvas Store grows we should hope to see thousands of game ready assets become available to our community. Try the beta for free at ",(0,s.jsx)(a.a,{href:"https://store.playcanvas.com/",children:"https://store.playcanvas.com/"}),"."]}),"\n",(0,s.jsx)(a.h3,{id:"physically-based-rendering",children:"Physically Based Rendering"}),"\n",(0,s.jsx)(a.p,{children:"Up until now PBR has only been available in the domain of AAA console and PC gaming. We\u2019re excited to announce that PBR is coming to PlayCanvas."}),"\n",(0,s.jsx)(a.p,{children:"Right now, it is possible for all PlayCanvas users to create this kind of content, but some of the steps need to performed in code. Our next goal is to integrate these steps directly into the toolset to allow you to build and iterate even faster."}),"\n",(0,s.jsxs)(a.p,{children:[(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(89192).A+"",children:(0,s.jsx)(a.img,{alt:"Star Lord Fan art using PBR in PlayCanvas",src:n(57902).A+"",width:"720",height:"373"})}),(0,s.jsx)(a.br,{}),"\n",(0,s.jsx)(a.em,{children:"Star Lord Fan art using PBR in PlayCanvas"})]}),"\n",(0,s.jsx)(a.h3,{id:"complete-website-redesign",children:"Complete Website Redesign"}),"\n",(0,s.jsx)(a.p,{children:"Over the past year we have also been busy redesigning our virtual home, playcanvas.com. We\u2019ve focused on increasing the speed of browsing on the site and functionality. Now it\u2019s fast and intuitive to use, giving you more time to work on your game!"}),"\n",(0,s.jsx)(a.h3,{id:"devlogs",children:"DevLogs"}),"\n",(0,s.jsx)(a.p,{children:"Every PlayCanvas project now has a DevLog. Think of the DevLog as part commit message, part blog and part twitter stream. Use it to let other people know what you\u2019ve been working on."}),"\n",(0,s.jsx)(a.h3,{id:"watch-and-star-projects",children:"Watch and Star Projects"}),"\n",(0,s.jsx)(a.p,{children:"Watching a project shows your interest, and your news feed will feature updates from any watched projects. With Starring you won\u2019t receive any information, but it just tells the project owner that you think it\u2019s cool."}),"\n",(0,s.jsx)(a.h3,{id:"particle-system",children:"Particle System"}),"\n",(0,s.jsx)(a.p,{children:"The particle component is our newest engine component type. Our new particle system runs on the GPU for blazing performance on all devices including mobiles. It's all packaged up into an artist friendly editor panel where you can modify the curves to create the exact effect you want. From explosions and smoke to magical effects."}),"\n",(0,s.jsx)(a.h3,{id:"ios-export",children:"iOS Export"}),"\n",(0,s.jsx)(a.p,{children:"It\u2019s just one click to get a XCode project which is easy to build into a iPhone application. This feature allows our Pro Account holders to make their projects as viral and shareable as they are fun to play."}),"\n",(0,s.jsx)(a.h3,{id:"material-editing",children:"Material Editing"}),"\n",(0,s.jsx)(a.p,{children:"Hard to remember a time before we had Material Editing. This year we deploy the Material Editing feature in the PlayCanvas Designer. This lets you customize the look of your models. And recently it's getting more and more advanced in particular with our new Physical Material type."}),"\n",(0,s.jsx)(a.h3,{id:"swooop",children:"SWOOOP"}),"\n",(0,s.jsx)(a.p,{children:"Way back in March we unveiled SWOOOP, an endless flying game created by 2 team members in 4 weeks. This is our flagship game showing the capabilities of WebGL, but following our new PBR feature the sky really is the limit with PlayCanvas."}),"\n",(0,s.jsxs)(a.p,{children:[(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(50556).A+"",children:(0,s.jsx)(a.img,{alt:"SWOOOP in Designer",src:n(4586).A+"",width:"575",height:"386"})}),(0,s.jsx)(a.br,{}),"\n",(0,s.jsx)(a.em,{children:"The SWOOOP project is open to everyone"})]}),"\n",(0,s.jsx)(a.h3,{id:"tanx",children:"TANX"}),"\n",(0,s.jsx)(a.p,{children:"In July, a PlayCanvas user walked away a prize winner in a game jam with his game ColorTanks. In around 8 hours the developer had created an incredibly addictive multi player game, that has been played by over 12,000 gamers."}),"\n",(0,s.jsx)(a.h3,{id:"playhack",children:"PLAYHACK"}),"\n",(0,s.jsx)(a.p,{children:"Towards the end of this year we started our own game jam, the PLAYHACK. Running the competition monthly, we provide you the model, you make a game with it and our favorite is featured on the PlayCanvas site."}),"\n",(0,s.jsx)(a.h2,{id:"things-to-look-forward-to-in-2015",children:"Things to look forward to in 2015"}),"\n",(0,s.jsx)(a.h3,{id:"physically-based-rendering-workflow",children:"Physically-Based Rendering Workflow"}),"\n",(0,s.jsx)(a.p,{children:"As we progress the new PBR feature in the PlayCanvas Engine, making visually stunning games with 'AAA grade' graphics will become easier than ever before. Pretty exciting stuff!"}),"\n",(0,s.jsx)(a.h3,{id:"massive-editor-improvements",children:"Massive Editor Improvements"}),"\n",(0,s.jsx)(a.p,{children:"We have a lot planned with regards to the Editor, so stay tuned. If PlayCanvas wasn't your favorite engine before it will be next year."}),"\n",(0,s.jsx)(a.h3,{id:"enhanced-store",children:"Enhanced Store"}),"\n",(0,s.jsx)(a.p,{children:"Though the current iteration of the PlayCanvas Store only has around 40 models, soon\xa0we\u2019ll be giving all of our PlayCanvas users the chance to become vendors, opening up their assets to over 20,000 PlayCanvas game developers. In time, the PlayCanvas Store will be a fully functioning marketplace for the PlayCanvas Community."}),"\n",(0,s.jsx)(a.h2,{id:"what-do-you-want-to-see",children:"What Do You Want To See?"})]})}function c(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},92199:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/files/background-small-f9d65562d797bed028c08782805a6eee.png"},50556:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/files/designer-swooop-1e6b4e26b7015128a6a4cb981c26358f.png"},89192:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/files/shadingComparison2-50d75da523c38f7f5467f2f84307f8d8.jpg"},70173:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/background-small-f9d65562d797bed028c08782805a6eee.png"},4586:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/designer-swooop-1e6b4e26b7015128a6a4cb981c26358f.png"},57902:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/shadingComparison2-50d75da523c38f7f5467f2f84307f8d8.jpg"},28453:(e,a,n)=>{n.d(a,{R:()=>o,x:()=>r});var t=n(96540);const s={},i=t.createContext(s);function o(e){const a=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:a},e.children)}},63376:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-in-2014-a-year-in-review","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-12-22-playcanvas-in-2014-a-year-in-review.md","source":"@site/blog/2014-12-22-playcanvas-in-2014-a-year-in-review.md","title":"PlayCanvas in 2014: A Year In Review","description":"In 2011, PlayCanvas started its journey as the world\'s first cloud-hosted game development platform, and over three years later we\u2019re still giving you the next generation toolset to build, share and play video games.","date":"2014-12-22T00:00:00.000Z","tags":[],"readingTime":4.04,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-in-2014-a-year-in-review","title":"PlayCanvas in 2014: A Year In Review"},"unlisted":false,"prevItem":{"title":"PLAYHACK - We challenge you to a jewel!","permalink":"/playhack-we-challenge-you-to-a-jewel"},"nextItem":{"title":"PLAYHACK December - Collecting Presents","permalink":"/playhack-december-collecting-presents"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[20375],{75202:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>t,toc:()=>d});var t=n(63376),s=n(74848),i=n(28453);const o={authors:"christy",slug:"playcanvas-in-2014-a-year-in-review",title:"PlayCanvas in 2014: A Year In Review"},r=void 0,l={authorsImageUrls:[void 0]},d=[{value:"Features",id:"features",level:2},{value:"Open-source",id:"open-source",level:3},{value:"Asset Store",id:"asset-store",level:3},{value:"Physically Based Rendering",id:"physically-based-rendering",level:3},{value:"Complete Website Redesign",id:"complete-website-redesign",level:3},{value:"DevLogs",id:"devlogs",level:3},{value:"Watch and Star Projects",id:"watch-and-star-projects",level:3},{value:"Particle System",id:"particle-system",level:3},{value:"iOS Export",id:"ios-export",level:3},{value:"Material Editing",id:"material-editing",level:3},{value:"SWOOOP",id:"swooop",level:3},{value:"TANX",id:"tanx",level:3},{value:"PLAYHACK",id:"playhack",level:3},{value:"Things to look forward to in 2015",id:"things-to-look-forward-to-in-2015",level:2},{value:"Physically-Based Rendering Workflow",id:"physically-based-rendering-workflow",level:3},{value:"Massive Editor Improvements",id:"massive-editor-improvements",level:3},{value:"Enhanced Store",id:"enhanced-store",level:3},{value:"What Do You Want To See?",id:"what-do-you-want-to-see",level:2}];function h(e){const a={a:"a",br:"br",em:"em",h2:"h2",h3:"h3",img:"img",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:(0,s.jsx)(a.strong,{children:"In 2011, PlayCanvas started its journey as the world's first cloud-hosted game development platform, and over three years later we\u2019re still giving you the next generation toolset to build, share and play video games."})}),"\n",(0,s.jsx)(a.p,{children:"In 2014 our community has grown from roughly 2,000 to over 20,000 users and there has been over 2,000,000 views of PlayCanvas projects. There really has never been a better time to join us! So without further ado, here\u2019s a look back at PlayCanvas and the Games industry in 2014 and glance ahead into the new year."}),"\n",(0,s.jsx)(a.h2,{id:"features",children:"Features"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(92199).A+"",children:(0,s.jsx)(a.img,{alt:"SWOOOP background",src:n(70173).A+"",width:"800",height:"353"})})}),"\n",(0,s.jsx)(a.h3,{id:"open-source",children:"Open-source"}),"\n",(0,s.jsxs)(a.p,{children:["The entire runtime engine is available right now on ",(0,s.jsx)(a.a,{href:"https://github.com/playcanvas/engine",children:"GitHub"})," under the lovely ",(0,s.jsx)(a.a,{href:"https://opensource.org/license/mit/",children:"MIT license"}),". Which means you can download it, fork it, and generally use it for anything you like."]}),"\n",(0,s.jsx)(a.h3,{id:"asset-store",children:"Asset Store"}),"\n",(0,s.jsxs)(a.p,{children:["We recently announced the PlayCanvas Asset Store, which is a huge deal for us. As the PlayCanvas Store grows we should hope to see thousands of game ready assets become available to our community. Try the beta for free at ",(0,s.jsx)(a.a,{href:"https://store.playcanvas.com/",children:"https://store.playcanvas.com/"}),"."]}),"\n",(0,s.jsx)(a.h3,{id:"physically-based-rendering",children:"Physically Based Rendering"}),"\n",(0,s.jsx)(a.p,{children:"Up until now PBR has only been available in the domain of AAA console and PC gaming. We\u2019re excited to announce that PBR is coming to PlayCanvas."}),"\n",(0,s.jsx)(a.p,{children:"Right now, it is possible for all PlayCanvas users to create this kind of content, but some of the steps need to performed in code. Our next goal is to integrate these steps directly into the toolset to allow you to build and iterate even faster."}),"\n",(0,s.jsxs)(a.p,{children:[(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(89192).A+"",children:(0,s.jsx)(a.img,{alt:"Star Lord Fan art using PBR in PlayCanvas",src:n(57902).A+"",width:"720",height:"373"})}),(0,s.jsx)(a.br,{}),"\n",(0,s.jsx)(a.em,{children:"Star Lord Fan art using PBR in PlayCanvas"})]}),"\n",(0,s.jsx)(a.h3,{id:"complete-website-redesign",children:"Complete Website Redesign"}),"\n",(0,s.jsx)(a.p,{children:"Over the past year we have also been busy redesigning our virtual home, playcanvas.com. We\u2019ve focused on increasing the speed of browsing on the site and functionality. Now it\u2019s fast and intuitive to use, giving you more time to work on your game!"}),"\n",(0,s.jsx)(a.h3,{id:"devlogs",children:"DevLogs"}),"\n",(0,s.jsx)(a.p,{children:"Every PlayCanvas project now has a DevLog. Think of the DevLog as part commit message, part blog and part twitter stream. Use it to let other people know what you\u2019ve been working on."}),"\n",(0,s.jsx)(a.h3,{id:"watch-and-star-projects",children:"Watch and Star Projects"}),"\n",(0,s.jsx)(a.p,{children:"Watching a project shows your interest, and your news feed will feature updates from any watched projects. With Starring you won\u2019t receive any information, but it just tells the project owner that you think it\u2019s cool."}),"\n",(0,s.jsx)(a.h3,{id:"particle-system",children:"Particle System"}),"\n",(0,s.jsx)(a.p,{children:"The particle component is our newest engine component type. Our new particle system runs on the GPU for blazing performance on all devices including mobiles. It's all packaged up into an artist friendly editor panel where you can modify the curves to create the exact effect you want. From explosions and smoke to magical effects."}),"\n",(0,s.jsx)(a.h3,{id:"ios-export",children:"iOS Export"}),"\n",(0,s.jsx)(a.p,{children:"It\u2019s just one click to get a XCode project which is easy to build into a iPhone application. This feature allows our Pro Account holders to make their projects as viral and shareable as they are fun to play."}),"\n",(0,s.jsx)(a.h3,{id:"material-editing",children:"Material Editing"}),"\n",(0,s.jsx)(a.p,{children:"Hard to remember a time before we had Material Editing. This year we deploy the Material Editing feature in the PlayCanvas Designer. This lets you customize the look of your models. And recently it's getting more and more advanced in particular with our new Physical Material type."}),"\n",(0,s.jsx)(a.h3,{id:"swooop",children:"SWOOOP"}),"\n",(0,s.jsx)(a.p,{children:"Way back in March we unveiled SWOOOP, an endless flying game created by 2 team members in 4 weeks. This is our flagship game showing the capabilities of WebGL, but following our new PBR feature the sky really is the limit with PlayCanvas."}),"\n",(0,s.jsxs)(a.p,{children:[(0,s.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(50556).A+"",children:(0,s.jsx)(a.img,{alt:"SWOOOP in Designer",src:n(4586).A+"",width:"575",height:"386"})}),(0,s.jsx)(a.br,{}),"\n",(0,s.jsx)(a.em,{children:"The SWOOOP project is open to everyone"})]}),"\n",(0,s.jsx)(a.h3,{id:"tanx",children:"TANX"}),"\n",(0,s.jsx)(a.p,{children:"In July, a PlayCanvas user walked away a prize winner in a game jam with his game ColorTanks. In around 8 hours the developer had created an incredibly addictive multi player game, that has been played by over 12,000 gamers."}),"\n",(0,s.jsx)(a.h3,{id:"playhack",children:"PLAYHACK"}),"\n",(0,s.jsx)(a.p,{children:"Towards the end of this year we started our own game jam, the PLAYHACK. Running the competition monthly, we provide you the model, you make a game with it and our favorite is featured on the PlayCanvas site."}),"\n",(0,s.jsx)(a.h2,{id:"things-to-look-forward-to-in-2015",children:"Things to look forward to in 2015"}),"\n",(0,s.jsx)(a.h3,{id:"physically-based-rendering-workflow",children:"Physically-Based Rendering Workflow"}),"\n",(0,s.jsx)(a.p,{children:"As we progress the new PBR feature in the PlayCanvas Engine, making visually stunning games with 'AAA grade' graphics will become easier than ever before. Pretty exciting stuff!"}),"\n",(0,s.jsx)(a.h3,{id:"massive-editor-improvements",children:"Massive Editor Improvements"}),"\n",(0,s.jsx)(a.p,{children:"We have a lot planned with regards to the Editor, so stay tuned. If PlayCanvas wasn't your favorite engine before it will be next year."}),"\n",(0,s.jsx)(a.h3,{id:"enhanced-store",children:"Enhanced Store"}),"\n",(0,s.jsx)(a.p,{children:"Though the current iteration of the PlayCanvas Store only has around 40 models, soon\xa0we\u2019ll be giving all of our PlayCanvas users the chance to become vendors, opening up their assets to over 20,000 PlayCanvas game developers. In time, the PlayCanvas Store will be a fully functioning marketplace for the PlayCanvas Community."}),"\n",(0,s.jsx)(a.h2,{id:"what-do-you-want-to-see",children:"What Do You Want To See?"})]})}function c(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},92199:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/files/background-small-f9d65562d797bed028c08782805a6eee.png"},50556:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/files/designer-swooop-1e6b4e26b7015128a6a4cb981c26358f.png"},89192:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/files/shadingComparison2-50d75da523c38f7f5467f2f84307f8d8.jpg"},70173:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/background-small-f9d65562d797bed028c08782805a6eee.png"},4586:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/designer-swooop-1e6b4e26b7015128a6a4cb981c26358f.png"},57902:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/shadingComparison2-50d75da523c38f7f5467f2f84307f8d8.jpg"},28453:(e,a,n)=>{n.d(a,{R:()=>o,x:()=>r});var t=n(96540);const s={},i=t.createContext(s);function o(e){const a=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:a},e.children)}},63376:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-in-2014-a-year-in-review","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-12-22-playcanvas-in-2014-a-year-in-review.md","source":"@site/blog/2014-12-22-playcanvas-in-2014-a-year-in-review.md","title":"PlayCanvas in 2014: A Year In Review","description":"In 2011, PlayCanvas started its journey as the world\'s first cloud-hosted game development platform, and over three years later we\u2019re still giving you the next generation toolset to build, share and play video games.","date":"2014-12-22T00:00:00.000Z","tags":[],"readingTime":4.04,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-in-2014-a-year-in-review","title":"PlayCanvas in 2014: A Year In Review"},"unlisted":false,"prevItem":{"title":"PLAYHACK - We challenge you to a jewel!","permalink":"/playhack-we-challenge-you-to-a-jewel"},"nextItem":{"title":"PLAYHACK December - Collecting Presents","permalink":"/playhack-december-collecting-presents"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/58ac53e0.0a1f0394.js b/assets/js/58ac53e0.cdd7e586.js
similarity index 70%
rename from assets/js/58ac53e0.0a1f0394.js
rename to assets/js/58ac53e0.cdd7e586.js
index 0a84a8b0d..67d74ea47 100644
--- a/assets/js/58ac53e0.0a1f0394.js
+++ b/assets/js/58ac53e0.cdd7e586.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[3603],{79057:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>u});var n=a(99161),i=a(74848),s=a(28453);const r={authors:"christy",slug:"virtual-reality-and-the-future-of-web-based-gaming",title:"Virtual Reality and the future of Web Based Gaming",tags:["oculus","vr"]},o=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){const t={a:"a",img:"img",p:"p",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["On Thursday 19th of June we will be ",(0,i.jsx)(t.a,{href:"https://www.meetup.com/London-Indie-Game-Developers/events/185608412/",children:"showcasing"})," some of our recent work with the amazing and exciting Oculus Rift Development Kit. In the build up and anticipation to this event we hope to convey why Virtual Reality and revolutionary hardware from\xa0",(0,i.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Reality_Labs",children:"Oculus VR"}),"\xa0are set to be a part of our future at\xa0",(0,i.jsx)(t.a,{href:"https://playcanvas.com",children:"PlayCanvas"}),". Playing a game in VR is one thing. Making a game in VR...now that really is the future."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(72034).A+"",children:(0,i.jsx)(t.img,{alt:"playcanvas oculus1",src:a(23836).A+"",width:"800",height:"450"})})})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},72034:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/playcanvas-oculus1-d5bbaf1ae0391440183ec468f37c46d8.jpg"},23836:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/playcanvas-oculus1-d5bbaf1ae0391440183ec468f37c46d8.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>r,x:()=>o});var n=a(96540);const i={},s=n.createContext(i);function r(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(s.Provider,{value:t},e.children)}},99161:e=>{e.exports=JSON.parse('{"permalink":"/virtual-reality-and-the-future-of-web-based-gaming","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-19-virtual-reality-and-the-future-of-web-based-gaming.md","source":"@site/blog/2014-06-19-virtual-reality-and-the-future-of-web-based-gaming.md","title":"Virtual Reality and the future of Web Based Gaming","description":"On Thursday 19th of June we will be showcasing some of our recent work with the amazing and exciting Oculus Rift Development Kit. In the build up and anticipation to this event we hope to convey why Virtual Reality and revolutionary hardware from\xa0Oculus VR\xa0are set to be a part of our future at\xa0PlayCanvas. Playing a game in VR is one thing. Making a game in VR...now that really is the future.","date":"2014-06-19T00:00:00.000Z","tags":[{"inline":true,"label":"oculus","permalink":"/tags/oculus"},{"inline":true,"label":"vr","permalink":"/tags/vr"}],"readingTime":3.125,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"virtual-reality-and-the-future-of-web-based-gaming","title":"Virtual Reality and the future of Web Based Gaming","tags":["oculus","vr"]},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 20/06/14","permalink":"/playcanvas-update-200614"},"nextItem":{"title":"Meet the PlayCanvas team: Will Eastcott","permalink":"/meet-the-playcanvas-team-will-eastcott"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[3603],{79057:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>u});var n=a(99161),i=a(74848),r=a(28453);const s={authors:"christy",slug:"virtual-reality-and-the-future-of-web-based-gaming",title:"Virtual Reality and the future of Web Based Gaming",tags:["oculus","vr"]},o=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){const t={a:"a",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["On Thursday 19th of June we will be ",(0,i.jsx)(t.a,{href:"https://www.meetup.com/London-Indie-Game-Developers/events/185608412/",children:"showcasing"})," some of our recent work with the amazing and exciting Oculus Rift Development Kit. In the build up and anticipation to this event we hope to convey why Virtual Reality and revolutionary hardware from\xa0",(0,i.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Reality_Labs",children:"Oculus VR"}),"\xa0are set to be a part of our future at\xa0",(0,i.jsx)(t.a,{href:"https://playcanvas.com",children:"PlayCanvas"}),". Playing a game in VR is one thing. Making a game in VR...now that really is the future."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(72034).A+"",children:(0,i.jsx)(t.img,{alt:"playcanvas oculus1",src:a(23836).A+"",width:"800",height:"450"})})})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},72034:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/playcanvas-oculus1-d5bbaf1ae0391440183ec468f37c46d8.jpg"},23836:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/playcanvas-oculus1-d5bbaf1ae0391440183ec468f37c46d8.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>s,x:()=>o});var n=a(96540);const i={},r=n.createContext(i);function s(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(r.Provider,{value:t},e.children)}},99161:e=>{e.exports=JSON.parse('{"permalink":"/virtual-reality-and-the-future-of-web-based-gaming","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-19-virtual-reality-and-the-future-of-web-based-gaming.md","source":"@site/blog/2014-06-19-virtual-reality-and-the-future-of-web-based-gaming.md","title":"Virtual Reality and the future of Web Based Gaming","description":"On Thursday 19th of June we will be showcasing some of our recent work with the amazing and exciting Oculus Rift Development Kit. In the build up and anticipation to this event we hope to convey why Virtual Reality and revolutionary hardware from\xa0Oculus VR\xa0are set to be a part of our future at\xa0PlayCanvas. Playing a game in VR is one thing. Making a game in VR...now that really is the future.","date":"2014-06-19T00:00:00.000Z","tags":[{"inline":true,"label":"oculus","permalink":"/tags/oculus"},{"inline":true,"label":"vr","permalink":"/tags/vr"}],"readingTime":3.125,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"virtual-reality-and-the-future-of-web-based-gaming","title":"Virtual Reality and the future of Web Based Gaming","tags":["oculus","vr"]},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 20/06/14","permalink":"/playcanvas-update-200614"},"nextItem":{"title":"Meet the PlayCanvas team: Will Eastcott","permalink":"/meet-the-playcanvas-team-will-eastcott"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/598300f6.3d6967b0.js b/assets/js/598300f6.945ca7e3.js
similarity index 77%
rename from assets/js/598300f6.3d6967b0.js
rename to assets/js/598300f6.945ca7e3.js
index 2d5d4f038..589932522 100644
--- a/assets/js/598300f6.3d6967b0.js
+++ b/assets/js/598300f6.945ca7e3.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[91294],{16244:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var a=n(48275),r=n(74848),o=n(28453);const s={authors:"christy",slug:"playcanvas-in-ludum-dare-31",title:"PLAYCANVAS in LUDUM DARE 31"},i=void 0,c={authorsImageUrls:[void 0]},l=[];function u(e){const t={img:"img",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Ludum Dare 31 has come and gone, but many great projects featured PlayCanvas over the course of the weekend. Here's your round up for our involvement in one of the most popular Game Jams in the world."})}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Winter Blast",src:n(69432).A+"",width:"1279",height:"721"})})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},69432:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/ld31-winter-blast-50d2c21379e5f2a4c0ad326b5007a3d2.png"},28453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>i});var a=n(96540);const r={},o=a.createContext(r);function s(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),a.createElement(o.Provider,{value:t},e.children)}},48275:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-in-ludum-dare-31","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-12-09-playcanvas-in-ludum-dare-31.md","source":"@site/blog/2014-12-09-playcanvas-in-ludum-dare-31.md","title":"PLAYCANVAS in LUDUM DARE 31","description":"Ludum Dare 31 has come and gone, but many great projects featured PlayCanvas over the course of the weekend. Here\'s your round up for our involvement in one of the most popular Game Jams in the world.","date":"2014-12-09T00:00:00.000Z","tags":[],"readingTime":2.64,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-in-ludum-dare-31","title":"PLAYCANVAS in LUDUM DARE 31"},"unlisted":false,"prevItem":{"title":"Physically Based Rendering comes to WebGL","permalink":"/physically-based-rendering-comes-to-webgl"},"nextItem":{"title":"PLAYHACK December - Player Character","permalink":"/playhack-december-player-character"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[91294],{16244:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var a=n(48275),r=n(74848),o=n(28453);const s={authors:"christy",slug:"playcanvas-in-ludum-dare-31",title:"PLAYCANVAS in LUDUM DARE 31"},i=void 0,c={authorsImageUrls:[void 0]},l=[];function u(e){const t={img:"img",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Ludum Dare 31 has come and gone, but many great projects featured PlayCanvas over the course of the weekend. Here's your round up for our involvement in one of the most popular Game Jams in the world."})}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Winter Blast",src:n(69432).A+"",width:"1279",height:"721"})})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},69432:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/ld31-winter-blast-50d2c21379e5f2a4c0ad326b5007a3d2.png"},28453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>i});var a=n(96540);const r={},o=a.createContext(r);function s(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),a.createElement(o.Provider,{value:t},e.children)}},48275:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-in-ludum-dare-31","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-12-09-playcanvas-in-ludum-dare-31.md","source":"@site/blog/2014-12-09-playcanvas-in-ludum-dare-31.md","title":"PLAYCANVAS in LUDUM DARE 31","description":"Ludum Dare 31 has come and gone, but many great projects featured PlayCanvas over the course of the weekend. Here\'s your round up for our involvement in one of the most popular Game Jams in the world.","date":"2014-12-09T00:00:00.000Z","tags":[],"readingTime":2.64,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-in-ludum-dare-31","title":"PLAYCANVAS in LUDUM DARE 31"},"unlisted":false,"prevItem":{"title":"Physically Based Rendering comes to WebGL","permalink":"/physically-based-rendering-comes-to-webgl"},"nextItem":{"title":"PLAYHACK December - Player Character","permalink":"/playhack-december-player-character"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/5d2f4cc7.5ab2d900.js b/assets/js/5d2f4cc7.aec1588b.js
similarity index 81%
rename from assets/js/5d2f4cc7.5ab2d900.js
rename to assets/js/5d2f4cc7.aec1588b.js
index 5950e392e..935eafeb4 100644
--- a/assets/js/5d2f4cc7.5ab2d900.js
+++ b/assets/js/5d2f4cc7.aec1588b.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[94433],{19572:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>l});var n=a(22332),s=a(74848),r=a(28453);const o={authors:"christy",slug:"playcanvas-update-211114",title:"PlayCanvas Update 21/11/14"},i=void 0,c={authorsImageUrls:[void 0]},l=[];function p(e){const t={a:"a",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"We haven't been keeping up our weekly update as much as we really should and for that we are eternally sorry. However,\xa0from a new particle system beta to the\xa0even newer watching and starring functions this week is no disappointment. Lets go!"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(91758).A+"",children:(0,s.jsx)(t.img,{alt:"PLAYHACK_boxes",src:a(98868).A+"",width:"700",height:"600"})})})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},91758:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/PLAYHACK_boxes-d1d489798142e6bc350c5de6d855b9fe.jpg"},98868:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/PLAYHACK_boxes-d1d489798142e6bc350c5de6d855b9fe.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>i});var n=a(96540);const s={},r=n.createContext(s);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(r.Provider,{value:t},e.children)}},22332:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-211114","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-11-21-playcanvas-update-211114.md","source":"@site/blog/2014-11-21-playcanvas-update-211114.md","title":"PlayCanvas Update 21/11/14","description":"We haven\'t been keeping up our weekly update as much as we really should and for that we are eternally sorry. However,\xa0from a new particle system beta to the\xa0even newer watching and starring functions this week is no disappointment. Lets go!","date":"2014-11-21T00:00:00.000Z","tags":[],"readingTime":2.21,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-211114","title":"PlayCanvas Update 21/11/14"},"unlisted":false,"prevItem":{"title":"PLAYHACK December: Jolly Santa","permalink":"/playhack-december-jolly-santa"},"nextItem":{"title":"Watching and Starring","permalink":"/watching-and-starring"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[94433],{19572:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>l});var n=a(22332),s=a(74848),r=a(28453);const o={authors:"christy",slug:"playcanvas-update-211114",title:"PlayCanvas Update 21/11/14"},i=void 0,c={authorsImageUrls:[void 0]},l=[];function p(e){const t={a:"a",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"We haven't been keeping up our weekly update as much as we really should and for that we are eternally sorry. However,\xa0from a new particle system beta to the\xa0even newer watching and starring functions this week is no disappointment. Lets go!"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(91758).A+"",children:(0,s.jsx)(t.img,{alt:"PLAYHACK_boxes",src:a(98868).A+"",width:"700",height:"600"})})})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},91758:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/PLAYHACK_boxes-d1d489798142e6bc350c5de6d855b9fe.jpg"},98868:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/PLAYHACK_boxes-d1d489798142e6bc350c5de6d855b9fe.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>i});var n=a(96540);const s={},r=n.createContext(s);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(r.Provider,{value:t},e.children)}},22332:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-211114","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-11-21-playcanvas-update-211114.md","source":"@site/blog/2014-11-21-playcanvas-update-211114.md","title":"PlayCanvas Update 21/11/14","description":"We haven\'t been keeping up our weekly update as much as we really should and for that we are eternally sorry. However,\xa0from a new particle system beta to the\xa0even newer watching and starring functions this week is no disappointment. Lets go!","date":"2014-11-21T00:00:00.000Z","tags":[],"readingTime":2.21,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-211114","title":"PlayCanvas Update 21/11/14"},"unlisted":false,"prevItem":{"title":"PLAYHACK December: Jolly Santa","permalink":"/playhack-december-jolly-santa"},"nextItem":{"title":"Watching and Starring","permalink":"/watching-and-starring"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/60ae26a4.eaf8e9f5.js b/assets/js/60ae26a4.a86da842.js
similarity index 51%
rename from assets/js/60ae26a4.eaf8e9f5.js
rename to assets/js/60ae26a4.a86da842.js
index cca938b62..a435cf0c8 100644
--- a/assets/js/60ae26a4.eaf8e9f5.js
+++ b/assets/js/60ae26a4.a86da842.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[85968],{95290:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var s=t(47540),n=t(74848),o=t(28453);const i={authors:"adam",slug:"playcanvas-update-040814",title:"PlayCanvas Update 04/08/14"},l=void 0,r={authorsImageUrls:[void 0]},c=[{value:"Video Series: Introduction to PlayCanvas",id:"video-series-introduction-to-playcanvas",level:3},{value:"Features and Fixes",id:"features-and-fixes",level:3},{value:"Other News",id:"other-news",level:3},{value:"SIGGRAPH",id:"siggraph",level:4},{value:"GAMESCOM",id:"gamescom",level:4},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function d(e){const a={a:"a",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"This week, we've improved your Dashboard, Projects and Profile pages and now have a full introductory video series to make PlayCanvas more accessible than ever."}),"\n",(0,n.jsx)(a.h3,{id:"video-series-introduction-to-playcanvas",children:"Video Series: Introduction to PlayCanvas"}),"\n",(0,n.jsx)(a.p,{children:(0,n.jsx)(a.a,{href:"https://www.youtube.com/playlist?list=PL0KdXFF26E4Azwcu1WabxGwJaPgKuc927",children:(0,n.jsx)(a.img,{alt:"Robot Dancing",src:t(19877).A+"",width:"550",height:"550"})})}),"\n",(0,n.jsxs)(a.p,{children:["We've created a new series of videos that run through a complete introduction to PlayCanvas. For new users,\xa0or for people who\xa0just want a refresher course on things they have missed this is essential viewing. See it on our ",(0,n.jsx)(a.a,{href:"https://www.youtube.com/playlist?list=PL0KdXFF26E4Azwcu1WabxGwJaPgKuc927",children:"Youtube channel"}),"."]}),"\n",(0,n.jsx)(a.h3,{id:"features-and-fixes",children:"Features and Fixes"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["New tutorials abound, including an ",(0,n.jsx)(a.a,{href:"https://developer.playcanvas.com/tutorials/basic-materials/",children:"Introduction to Materials"})," in PlayCanvas - if you haven't seen them yet, just go to your projects page and click the 'Start Learning' link to... umm, start learning! The video tutorials are all on ",(0,n.jsx)(a.a,{href:"https://www.youtube.com/user/playcanvas",children:"our YouTube page"}),"."]}),"\n",(0,n.jsx)(a.li,{children:"The projects and profile pages have been revamped."}),"\n",(0,n.jsx)(a.li,{children:"The site is\xa0now also compatible with more mobile devices (updates to cater for more mobile resolutions)."}),"\n"]}),"\n",(0,n.jsx)(a.h3,{id:"other-news",children:"Other News"}),"\n",(0,n.jsx)(a.h4,{id:"siggraph",children:"SIGGRAPH"}),"\n",(0,n.jsxs)(a.p,{children:["Next week\xa0PlayCanvas will be at\xa0",(0,n.jsx)(a.a,{href:"http://s2014.siggraph.org/",children:"SIGGRAPH"}),", represented by our esteemed CTO Dave Evans. He'll be demonstrating how you can use PlayCanvas to develop\xa03D games for mobile platforms. For anyone lucky enough to attend, we'll be at ",(0,n.jsx)(a.a,{href:"http://s2014.siggraph.org/exhibitors-advertisers/siggraph-2014-mobile-pavilion",children:"Mobile Pavilion"})," #933, in conjunction with ARM - you're all welcome to pay us a visit. Or ",(0,n.jsx)(a.a,{href:"mailto:info@playcanvas.com",children:"get in touch"}),"\xa0if you'd like to set up a meeting."]}),"\n",(0,n.jsx)(a.h4,{id:"gamescom",children:"GAMESCOM"}),"\n",(0,n.jsxs)(a.p,{children:["Will, our CEO, will be attending this year's ",(0,n.jsx)(a.a,{href:"https://www.gamescom.global/",children:"GAMESCOM"})," showing for mobile and HTML5 games.\xa0",(0,n.jsx)(a.a,{href:"mailto:info@playcanvas.com",children:"Get in touch"})," if you'd like to set up a meeting or see a up-close demo of PlayCanvas."]}),"\n",(0,n.jsx)(a.p,{children:"Watch this space for SIGGRAPH and GAMESCOM updates\xa0over the next two weeks!"}),"\n",(0,n.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,n.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,n.jsxs)(a.li,{children:["Like the\xa0",(0,n.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,n.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,n.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},19877:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/images/Robot-Dance-298b035c82c0921fd73965a76af92751.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>l});var s=t(96540);const n={},o=s.createContext(n);function i(e){const a=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(o.Provider,{value:a},e.children)}},47540:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-040814","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-08-04-playcanvas-update-040814.md","source":"@site/blog/2014-08-04-playcanvas-update-040814.md","title":"PlayCanvas Update 04/08/14","description":"This week, we\'ve improved your Dashboard, Projects and Profile pages and now have a full introductory video series to make PlayCanvas more accessible than ever.","date":"2014-08-04T00:00:00.000Z","tags":[],"readingTime":1.485,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-040814","title":"PlayCanvas Update 04/08/14"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 08/08/14","permalink":"/playcanvas-update-080814"},"nextItem":{"title":"PlayCanvas Update 25/7/14","permalink":"/playcanvas-update-25714"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[85968],{95290:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>n,toc:()=>c});var n=t(47540),s=t(74848),o=t(28453);const i={authors:"adam",slug:"playcanvas-update-040814",title:"PlayCanvas Update 04/08/14"},l=void 0,r={authorsImageUrls:[void 0]},c=[{value:"Video Series: Introduction to PlayCanvas",id:"video-series-introduction-to-playcanvas",level:3},{value:"Features and Fixes",id:"features-and-fixes",level:3},{value:"Other News",id:"other-news",level:3},{value:"SIGGRAPH",id:"siggraph",level:4},{value:"GAMESCOM",id:"gamescom",level:4},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function d(e){const a={a:"a",h3:"h3",h4:"h4",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:"This week, we've improved your Dashboard, Projects and Profile pages and now have a full introductory video series to make PlayCanvas more accessible than ever."}),"\n",(0,s.jsx)(a.h3,{id:"video-series-introduction-to-playcanvas",children:"Video Series: Introduction to PlayCanvas"}),"\n",(0,s.jsx)(a.p,{children:(0,s.jsx)(a.a,{href:"https://www.youtube.com/playlist?list=PL0KdXFF26E4Azwcu1WabxGwJaPgKuc927",children:(0,s.jsx)(a.img,{alt:"Robot Dancing",src:t(19877).A+"",width:"550",height:"550"})})}),"\n",(0,s.jsxs)(a.p,{children:["We've created a new series of videos that run through a complete introduction to PlayCanvas. For new users,\xa0or for people who\xa0just want a refresher course on things they have missed this is essential viewing. See it on our ",(0,s.jsx)(a.a,{href:"https://www.youtube.com/playlist?list=PL0KdXFF26E4Azwcu1WabxGwJaPgKuc927",children:"Youtube channel"}),"."]}),"\n",(0,s.jsx)(a.h3,{id:"features-and-fixes",children:"Features and Fixes"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["New tutorials abound, including an ",(0,s.jsx)(a.a,{href:"https://developer.playcanvas.com/tutorials/basic-materials/",children:"Introduction to Materials"})," in PlayCanvas - if you haven't seen them yet, just go to your projects page and click the 'Start Learning' link to... umm, start learning! The video tutorials are all on ",(0,s.jsx)(a.a,{href:"https://www.youtube.com/user/playcanvas",children:"our YouTube page"}),"."]}),"\n",(0,s.jsx)(a.li,{children:"The projects and profile pages have been revamped."}),"\n",(0,s.jsx)(a.li,{children:"The site is\xa0now also compatible with more mobile devices (updates to cater for more mobile resolutions)."}),"\n"]}),"\n",(0,s.jsx)(a.h3,{id:"other-news",children:"Other News"}),"\n",(0,s.jsx)(a.h4,{id:"siggraph",children:"SIGGRAPH"}),"\n",(0,s.jsxs)(a.p,{children:["Next week\xa0PlayCanvas will be at\xa0",(0,s.jsx)(a.a,{href:"http://s2014.siggraph.org/",children:"SIGGRAPH"}),", represented by our esteemed CTO Dave Evans. He'll be demonstrating how you can use PlayCanvas to develop\xa03D games for mobile platforms. For anyone lucky enough to attend, we'll be at ",(0,s.jsx)(a.a,{href:"http://s2014.siggraph.org/exhibitors-advertisers/siggraph-2014-mobile-pavilion",children:"Mobile Pavilion"})," #933, in conjunction with ARM - you're all welcome to pay us a visit. Or ",(0,s.jsx)(a.a,{href:"mailto:info@playcanvas.com",children:"get in touch"}),"\xa0if you'd like to set up a meeting."]}),"\n",(0,s.jsx)(a.h4,{id:"gamescom",children:"GAMESCOM"}),"\n",(0,s.jsxs)(a.p,{children:["Will, our CEO, will be attending this year's ",(0,s.jsx)(a.a,{href:"https://www.gamescom.global/",children:"GAMESCOM"})," showing for mobile and HTML5 games.\xa0",(0,s.jsx)(a.a,{href:"mailto:info@playcanvas.com",children:"Get in touch"})," if you'd like to set up a meeting or see a up-close demo of PlayCanvas."]}),"\n",(0,s.jsx)(a.p,{children:"Watch this space for SIGGRAPH and GAMESCOM updates\xa0over the next two weeks!"}),"\n",(0,s.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(a.li,{children:["Like the\xa0",(0,s.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},19877:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/Robot-Dance-298b035c82c0921fd73965a76af92751.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>l});var n=t(96540);const s={},o=n.createContext(s);function i(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:a},e.children)}},47540:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-040814","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-08-04-playcanvas-update-040814.md","source":"@site/blog/2014-08-04-playcanvas-update-040814.md","title":"PlayCanvas Update 04/08/14","description":"This week, we\'ve improved your Dashboard, Projects and Profile pages and now have a full introductory video series to make PlayCanvas more accessible than ever.","date":"2014-08-04T00:00:00.000Z","tags":[],"readingTime":1.485,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-040814","title":"PlayCanvas Update 04/08/14"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 08/08/14","permalink":"/playcanvas-update-080814"},"nextItem":{"title":"PlayCanvas Update 25/7/14","permalink":"/playcanvas-update-25714"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/61fcc327.962bb18a.js b/assets/js/61fcc327.00222336.js
similarity index 64%
rename from assets/js/61fcc327.962bb18a.js
rename to assets/js/61fcc327.00222336.js
index 3252251c3..59765f1f3 100644
--- a/assets/js/61fcc327.962bb18a.js
+++ b/assets/js/61fcc327.00222336.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[25742],{1870:(a,e,t)=>{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>l});var n=t(89614),s=t(74848),r=t(28453);const o={authors:"adam",slug:"playcanvas-update-080814",title:"PlayCanvas Update 08/08/14"},p=void 0,i={authorsImageUrls:[void 0]},l=[];function c(a){const e={p:"p",...(0,r.R)(),...a.components};return(0,s.jsx)(e.p,{children:"This week, we're\xa0preparing to attend gamescom, GDC Europe and SIGGRAPH.\xa0Here's a quick reminder:"})}function d(a={}){const{wrapper:e}={...(0,r.R)(),...a.components};return e?(0,s.jsx)(e,{...a,children:(0,s.jsx)(c,{...a})}):c(a)}},28453:(a,e,t)=>{t.d(e,{R:()=>o,x:()=>p});var n=t(96540);const s={},r=n.createContext(s);function o(a){const e=n.useContext(r);return n.useMemo((function(){return"function"==typeof a?a(e):{...e,...a}}),[e,a])}function p(a){let e;return e=a.disableParentContext?"function"==typeof a.components?a.components(s):a.components||s:o(a.components),n.createElement(r.Provider,{value:e},a.children)}},89614:a=>{a.exports=JSON.parse('{"permalink":"/playcanvas-update-080814","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-08-08-playcanvas-update-080814.md","source":"@site/blog/2014-08-08-playcanvas-update-080814.md","title":"PlayCanvas Update 08/08/14","description":"This week, we\'re\xa0preparing to attend gamescom, GDC Europe and SIGGRAPH.\xa0Here\'s a quick reminder:","date":"2014-08-08T00:00:00.000Z","tags":[],"readingTime":0.725,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-080814","title":"PlayCanvas Update 08/08/14"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 15/08/14","permalink":"/playcanvas-update-150814"},"nextItem":{"title":"PlayCanvas Update 04/08/14","permalink":"/playcanvas-update-040814"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[25742],{1870:(a,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>i});var n=t(89614),s=t(74848),r=t(28453);const o={authors:"adam",slug:"playcanvas-update-080814",title:"PlayCanvas Update 08/08/14"},p=void 0,l={authorsImageUrls:[void 0]},i=[];function c(a){const e={p:"p",...(0,r.R)(),...a.components};return(0,s.jsx)(e.p,{children:"This week, we're\xa0preparing to attend gamescom, GDC Europe and SIGGRAPH.\xa0Here's a quick reminder:"})}function d(a={}){const{wrapper:e}={...(0,r.R)(),...a.components};return e?(0,s.jsx)(e,{...a,children:(0,s.jsx)(c,{...a})}):c(a)}},28453:(a,e,t)=>{t.d(e,{R:()=>o,x:()=>p});var n=t(96540);const s={},r=n.createContext(s);function o(a){const e=n.useContext(r);return n.useMemo((function(){return"function"==typeof a?a(e):{...e,...a}}),[e,a])}function p(a){let e;return e=a.disableParentContext?"function"==typeof a.components?a.components(s):a.components||s:o(a.components),n.createElement(r.Provider,{value:e},a.children)}},89614:a=>{a.exports=JSON.parse('{"permalink":"/playcanvas-update-080814","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-08-08-playcanvas-update-080814.md","source":"@site/blog/2014-08-08-playcanvas-update-080814.md","title":"PlayCanvas Update 08/08/14","description":"This week, we\'re\xa0preparing to attend gamescom, GDC Europe and SIGGRAPH.\xa0Here\'s a quick reminder:","date":"2014-08-08T00:00:00.000Z","tags":[],"readingTime":0.725,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-080814","title":"PlayCanvas Update 08/08/14"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 15/08/14","permalink":"/playcanvas-update-150814"},"nextItem":{"title":"PlayCanvas Update 04/08/14","permalink":"/playcanvas-update-040814"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/6aa8ddbf.c235c606.js b/assets/js/6aa8ddbf.510b0c17.js
similarity index 91%
rename from assets/js/6aa8ddbf.c235c606.js
rename to assets/js/6aa8ddbf.510b0c17.js
index f6c7f96b4..cb44545f3 100644
--- a/assets/js/6aa8ddbf.c235c606.js
+++ b/assets/js/6aa8ddbf.510b0c17.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[17967],{67818:(e,a,s)=>{s.r(a),s.d(a,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>d});var t=s(84047),n=s(74848),o=s(28453);const i={authors:"adam",slug:"playcanvas-update-18714",title:"PlayCanvas Update 18/7/14"},l=void 0,r={authorsImageUrls:[void 0]},d=[{value:"Features and Fixes",id:"features-and-fixes",level:3},{value:"Updated Gizmos",id:"updated-gizmos",level:3},{value:"UKIE Games Expo",id:"ukie-games-expo",level:3},{value:"SWOOOP",id:"swooop",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function c(e){const a={a:"a",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Welcome PlayCanvas fans! Tea and coffee spillages have menaced the office this week but still we carry on. Here are the updates for this week."}),"\n",(0,n.jsx)(a.h3,{id:"features-and-fixes",children:"Features and Fixes"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.strong,{children:"New Gizmos"})," for you to play with. We've enhanced the Designer gizmo controls. See\xa0the screenshots and descriptions below."]}),"\n",(0,n.jsx)(a.li,{children:"Fixed a small error when adding a script to a folder."}),"\n",(0,n.jsx)(a.li,{children:"Exporting your Packs has received a performance boost - it's now even quicker to show the world the results of your hard work."}),"\n"]}),"\n",(0,n.jsx)(a.h3,{id:"updated-gizmos",children:"Updated Gizmos"}),"\n",(0,n.jsx)(a.p,{children:(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(12902).A+"",children:(0,n.jsx)(a.img,{alt:"Translate Gizmo",src:s(5924).A+"",width:"876",height:"448"})})}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.strong,{children:"Translation Gizmo:"})," you can now move any selected entity in 2 dimensions at the same time by clicking on the planes in between the two axes you wish to translate the object over. Also, the view of the planes react to your viewpoint. For example, if you look at the model along the x axis you will only see the y-z plane."]}),"\n",(0,n.jsx)(a.p,{children:(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(84686).A+"",children:(0,n.jsx)(a.img,{alt:"Scale Gizmo",src:s(7976).A+"",width:"876",height:"448"})})}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.strong,{children:"Scaling Gizmo:"})," a new uniform scale control has been added. Access it by clicking the new white block and drag the mouse to scale in all directions."]}),"\n",(0,n.jsx)(a.h3,{id:"ukie-games-expo",children:"UKIE Games Expo"}),"\n",(0,n.jsxs)(a.p,{children:["Earlier this week, our esteemed CEO Will Eastcott felt like showing some people the future of web-based gaming and so headed off to the\xa0",(0,n.jsx)(a.strong,{children:"Liverpool International Festival for Business"})," and ",(0,n.jsx)(a.a,{href:"https://www.events.ukti.gov.uk/creative-business-breakfast-and-uk-games-industry-showcase--ifb",children:"their games development showcase"}),"\xa0to demonstrate the PlayCanvas platform."]}),"\n",(0,n.jsx)(a.h3,{id:"swooop",children:"SWOOOP"}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{href:"http://www.philippamoore.com/",children:"Philippa Moore"}),", the artist responsible for SWOOOP's\xa0brilliant 3D visuals, will be demoing SWOOOP at the ",(0,n.jsx)(a.a,{href:"https://ladycade.org/",children:"LadyCade"})," tonight (Friday 18th) at the ",(0,n.jsx)(a.a,{href:"http://londongamespace.org/",children:"London Game Space"}),". Actually, while we're on the subject, now might be a good time to try and beat your high\xa0score. ",(0,n.jsx)(a.a,{href:"http://swooop.playcanvas.com/",children:"Play it here"}),"."]}),"\n",(0,n.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,n.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,n.jsxs)(a.li,{children:["Like the\xa0",(0,n.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,n.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,n.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},84686:(e,a,s)=>{s.d(a,{A:()=>t});const t=s.p+"assets/files/designer-gizmo-scale-31b0032e18f1d54faace343bc17f92f3.png"},12902:(e,a,s)=>{s.d(a,{A:()=>t});const t=s.p+"assets/files/designer-gizmo-translate-e59fb30eb70b1637df0f67acf8598da6.png"},7976:(e,a,s)=>{s.d(a,{A:()=>t});const t=s.p+"assets/images/designer-gizmo-scale-31b0032e18f1d54faace343bc17f92f3.png"},5924:(e,a,s)=>{s.d(a,{A:()=>t});const t=s.p+"assets/images/designer-gizmo-translate-e59fb30eb70b1637df0f67acf8598da6.png"},28453:(e,a,s)=>{s.d(a,{R:()=>i,x:()=>l});var t=s(96540);const n={},o=t.createContext(n);function i(e){const a=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),t.createElement(o.Provider,{value:a},e.children)}},84047:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-18714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-18-playcanvas-update-18714.md","source":"@site/blog/2014-07-18-playcanvas-update-18714.md","title":"PlayCanvas Update 18/7/14","description":"Welcome PlayCanvas fans! Tea and coffee spillages have menaced the office this week but still we carry on. Here are the updates for this week.","date":"2014-07-18T00:00:00.000Z","tags":[],"readingTime":1.53,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-18714","title":"PlayCanvas Update 18/7/14"},"unlisted":false,"prevItem":{"title":"SWOOOP @ LadyCADE","permalink":"/swooop-ladycade"},"nextItem":{"title":"developer.playcanvas.com is open source","permalink":"/developer-playcanvas-com-is-open-source"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[17967],{67818:(e,a,s)=>{s.r(a),s.d(a,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>d});var t=s(84047),n=s(74848),o=s(28453);const i={authors:"adam",slug:"playcanvas-update-18714",title:"PlayCanvas Update 18/7/14"},l=void 0,r={authorsImageUrls:[void 0]},d=[{value:"Features and Fixes",id:"features-and-fixes",level:3},{value:"Updated Gizmos",id:"updated-gizmos",level:3},{value:"UKIE Games Expo",id:"ukie-games-expo",level:3},{value:"SWOOOP",id:"swooop",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function c(e){const a={a:"a",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Welcome PlayCanvas fans! Tea and coffee spillages have menaced the office this week but still we carry on. Here are the updates for this week."}),"\n",(0,n.jsx)(a.h3,{id:"features-and-fixes",children:"Features and Fixes"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.strong,{children:"New Gizmos"})," for you to play with. We've enhanced the Designer gizmo controls. See\xa0the screenshots and descriptions below."]}),"\n",(0,n.jsx)(a.li,{children:"Fixed a small error when adding a script to a folder."}),"\n",(0,n.jsx)(a.li,{children:"Exporting your Packs has received a performance boost - it's now even quicker to show the world the results of your hard work."}),"\n"]}),"\n",(0,n.jsx)(a.h3,{id:"updated-gizmos",children:"Updated Gizmos"}),"\n",(0,n.jsx)(a.p,{children:(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(12902).A+"",children:(0,n.jsx)(a.img,{alt:"Translate Gizmo",src:s(5924).A+"",width:"876",height:"448"})})}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.strong,{children:"Translation Gizmo:"})," you can now move any selected entity in 2 dimensions at the same time by clicking on the planes in between the two axes you wish to translate the object over. Also, the view of the planes react to your viewpoint. For example, if you look at the model along the x axis you will only see the y-z plane."]}),"\n",(0,n.jsx)(a.p,{children:(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(84686).A+"",children:(0,n.jsx)(a.img,{alt:"Scale Gizmo",src:s(7976).A+"",width:"876",height:"448"})})}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.strong,{children:"Scaling Gizmo:"})," a new uniform scale control has been added. Access it by clicking the new white block and drag the mouse to scale in all directions."]}),"\n",(0,n.jsx)(a.h3,{id:"ukie-games-expo",children:"UKIE Games Expo"}),"\n",(0,n.jsxs)(a.p,{children:["Earlier this week, our esteemed CEO Will Eastcott felt like showing some people the future of web-based gaming and so headed off to the\xa0",(0,n.jsx)(a.strong,{children:"Liverpool International Festival for Business"})," and ",(0,n.jsx)(a.a,{href:"https://www.events.ukti.gov.uk/creative-business-breakfast-and-uk-games-industry-showcase--ifb",children:"their games development showcase"}),"\xa0to demonstrate the PlayCanvas platform."]}),"\n",(0,n.jsx)(a.h3,{id:"swooop",children:"SWOOOP"}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{href:"http://www.philippamoore.com/",children:"Philippa Moore"}),", the artist responsible for SWOOOP's\xa0brilliant 3D visuals, will be demoing SWOOOP at the ",(0,n.jsx)(a.a,{href:"https://ladycade.org/",children:"LadyCade"})," tonight (Friday 18th) at the ",(0,n.jsx)(a.a,{href:"http://londongamespace.org/",children:"London Game Space"}),". Actually, while we're on the subject, now might be a good time to try and beat your high\xa0score. ",(0,n.jsx)(a.a,{href:"http://swooop.playcanvas.com/",children:"Play it here"}),"."]}),"\n",(0,n.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,n.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,n.jsxs)(a.li,{children:["Like the\xa0",(0,n.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,n.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,n.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},84686:(e,a,s)=>{s.d(a,{A:()=>t});const t=s.p+"assets/files/designer-gizmo-scale-31b0032e18f1d54faace343bc17f92f3.png"},12902:(e,a,s)=>{s.d(a,{A:()=>t});const t=s.p+"assets/files/designer-gizmo-translate-e59fb30eb70b1637df0f67acf8598da6.png"},7976:(e,a,s)=>{s.d(a,{A:()=>t});const t=s.p+"assets/images/designer-gizmo-scale-31b0032e18f1d54faace343bc17f92f3.png"},5924:(e,a,s)=>{s.d(a,{A:()=>t});const t=s.p+"assets/images/designer-gizmo-translate-e59fb30eb70b1637df0f67acf8598da6.png"},28453:(e,a,s)=>{s.d(a,{R:()=>i,x:()=>l});var t=s(96540);const n={},o=t.createContext(n);function i(e){const a=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),t.createElement(o.Provider,{value:a},e.children)}},84047:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-18714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-18-playcanvas-update-18714.md","source":"@site/blog/2014-07-18-playcanvas-update-18714.md","title":"PlayCanvas Update 18/7/14","description":"Welcome PlayCanvas fans! Tea and coffee spillages have menaced the office this week but still we carry on. Here are the updates for this week.","date":"2014-07-18T00:00:00.000Z","tags":[],"readingTime":1.53,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-18714","title":"PlayCanvas Update 18/7/14"},"unlisted":false,"prevItem":{"title":"SWOOOP @ LadyCADE","permalink":"/swooop-ladycade"},"nextItem":{"title":"developer.playcanvas.com is open source","permalink":"/developer-playcanvas-com-is-open-source"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/6ce32d83.1080b8ec.js b/assets/js/6ce32d83.8702aeb1.js
similarity index 77%
rename from assets/js/6ce32d83.1080b8ec.js
rename to assets/js/6ce32d83.8702aeb1.js
index 6a3893f7e..dd6a20a63 100644
--- a/assets/js/6ce32d83.1080b8ec.js
+++ b/assets/js/6ce32d83.8702aeb1.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[84411],{41220:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>p});var n=a(10271),s=a(74848),o=a(28453);const r={authors:"christy",slug:"playcanvas-update",title:"PlayCanvas Update 13/06/14"},i=void 0,c={authorsImageUrls:[void 0]},p=[];function l(t){const e={a:"a",img:"img",p:"p",...(0,o.R)(),...t.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(5729).A+"",children:(0,s.jsx)(e.img,{alt:"construction_kit-001",src:a(55127).A+"",width:"800",height:"592"})})}),"\n",(0,s.jsxs)(e.p,{children:["After a busy week here in the PlayCanvas office, we thought what better way to champion our efforts than to give you a taste of what's happened at our HQ. We plan to start a series of weekly updates so you know what is keeping ",(0,s.jsx)(e.a,{href:"https://playcanvas.com/",children:"PlayCanvas"})," at its best. Here's the latest news..."]})]})}function h(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(l,{...t})}):l(t)}},5729:(t,e,a)=>{a.d(e,{A:()=>n});const n=a.p+"assets/files/construction_kit-001-36011c02b61f871d9df5357a4601321c.jpg"},55127:(t,e,a)=>{a.d(e,{A:()=>n});const n=a.p+"assets/images/construction_kit-001-36011c02b61f871d9df5357a4601321c.jpg"},28453:(t,e,a)=>{a.d(e,{R:()=>r,x:()=>i});var n=a(96540);const s={},o=n.createContext(s);function r(t){const e=n.useContext(o);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function i(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:r(t.components),n.createElement(o.Provider,{value:e},t.children)}},10271:t=>{t.exports=JSON.parse('{"permalink":"/playcanvas-update","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-13-playcanvas-update.md","source":"@site/blog/2014-06-13-playcanvas-update.md","title":"PlayCanvas Update 13/06/14","description":"constructionkit-001","date":"2014-06-13T00:00:00.000Z","tags":[],"readingTime":0.895,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update","title":"PlayCanvas Update 13/06/14"},"unlisted":false,"prevItem":{"title":"Platform Game Starter Kit","permalink":"/platform-game-starter-kit"},"nextItem":{"title":"Snappy New Update","permalink":"/snappy-new-update"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[84411],{41220:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>n,toc:()=>p});var n=a(10271),s=a(74848),o=a(28453);const r={authors:"christy",slug:"playcanvas-update",title:"PlayCanvas Update 13/06/14"},i=void 0,c={authorsImageUrls:[void 0]},p=[];function l(t){const e={a:"a",img:"img",p:"p",...(0,o.R)(),...t.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.p,{children:(0,s.jsx)(e.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(5729).A+"",children:(0,s.jsx)(e.img,{alt:"construction_kit-001",src:a(55127).A+"",width:"800",height:"592"})})}),"\n",(0,s.jsxs)(e.p,{children:["After a busy week here in the PlayCanvas office, we thought what better way to champion our efforts than to give you a taste of what's happened at our HQ. We plan to start a series of weekly updates so you know what is keeping ",(0,s.jsx)(e.a,{href:"https://playcanvas.com/",children:"PlayCanvas"})," at its best. Here's the latest news..."]})]})}function u(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(l,{...t})}):l(t)}},5729:(t,e,a)=>{a.d(e,{A:()=>n});const n=a.p+"assets/files/construction_kit-001-36011c02b61f871d9df5357a4601321c.jpg"},55127:(t,e,a)=>{a.d(e,{A:()=>n});const n=a.p+"assets/images/construction_kit-001-36011c02b61f871d9df5357a4601321c.jpg"},28453:(t,e,a)=>{a.d(e,{R:()=>r,x:()=>i});var n=a(96540);const s={},o=n.createContext(s);function r(t){const e=n.useContext(o);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function i(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:r(t.components),n.createElement(o.Provider,{value:e},t.children)}},10271:t=>{t.exports=JSON.parse('{"permalink":"/playcanvas-update","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-13-playcanvas-update.md","source":"@site/blog/2014-06-13-playcanvas-update.md","title":"PlayCanvas Update 13/06/14","description":"constructionkit-001","date":"2014-06-13T00:00:00.000Z","tags":[],"readingTime":0.895,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update","title":"PlayCanvas Update 13/06/14"},"unlisted":false,"prevItem":{"title":"Platform Game Starter Kit","permalink":"/platform-game-starter-kit"},"nextItem":{"title":"Snappy New Update","permalink":"/snappy-new-update"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/743ec65d.4deec689.js b/assets/js/743ec65d.56821831.js
similarity index 67%
rename from assets/js/743ec65d.4deec689.js
rename to assets/js/743ec65d.56821831.js
index 47f5460f4..c09dcb0e2 100644
--- a/assets/js/743ec65d.4deec689.js
+++ b/assets/js/743ec65d.56821831.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[91910],{59310:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var s=t(74134),n=t(74848),o=t(28453);const r={authors:"adam",slug:"playcanvas-update-110714",title:"PlayCanvas Update 11/07/14"},i=void 0,l={authorsImageUrls:[void 0]},p=[];function u(e){const a={p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.strong,{children:"Despite\xa0a tide of sickness this week we still have a great list of updates for all you PlayCanvasers!"})," What would be the phrase you use to describe someone who uses PlayCanvas? I don\u2019t know... anyway, the updates for this week."]})}function c(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},28453:(e,a,t)=>{t.d(a,{R:()=>r,x:()=>i});var s=t(96540);const n={},o=s.createContext(n);function r(e){const a=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),s.createElement(o.Provider,{value:a},e.children)}},74134:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-110714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-11-playcanvas-update-110714.md","source":"@site/blog/2014-07-11-playcanvas-update-110714.md","title":"PlayCanvas Update 11/07/14","description":"Despite\xa0a tide of sickness this week we still have a great list of updates for all you PlayCanvasers! What would be the phrase you use to describe someone who uses PlayCanvas? I don\u2019t know... anyway, the updates for this week.","date":"2014-07-11T00:00:00.000Z","tags":[],"readingTime":1.935,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-110714","title":"PlayCanvas Update 11/07/14"},"unlisted":false,"prevItem":{"title":"developer.playcanvas.com is open source","permalink":"/developer-playcanvas-com-is-open-source"},"nextItem":{"title":"Great British Summer Game Jam","permalink":"/great-british-summer-game-jam"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[91910],{59310:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>i,contentTitle:()=>l,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var s=t(74134),n=t(74848),o=t(28453);const r={authors:"adam",slug:"playcanvas-update-110714",title:"PlayCanvas Update 11/07/14"},l=void 0,i={authorsImageUrls:[void 0]},p=[];function u(e){const a={p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.strong,{children:"Despite\xa0a tide of sickness this week we still have a great list of updates for all you PlayCanvasers!"})," What would be the phrase you use to describe someone who uses PlayCanvas? I don\u2019t know... anyway, the updates for this week."]})}function c(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},28453:(e,a,t)=>{t.d(a,{R:()=>r,x:()=>l});var s=t(96540);const n={},o=s.createContext(n);function r(e){const a=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),s.createElement(o.Provider,{value:a},e.children)}},74134:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-110714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-11-playcanvas-update-110714.md","source":"@site/blog/2014-07-11-playcanvas-update-110714.md","title":"PlayCanvas Update 11/07/14","description":"Despite\xa0a tide of sickness this week we still have a great list of updates for all you PlayCanvasers! What would be the phrase you use to describe someone who uses PlayCanvas? I don\u2019t know... anyway, the updates for this week.","date":"2014-07-11T00:00:00.000Z","tags":[],"readingTime":1.935,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-110714","title":"PlayCanvas Update 11/07/14"},"unlisted":false,"prevItem":{"title":"developer.playcanvas.com is open source","permalink":"/developer-playcanvas-com-is-open-source"},"nextItem":{"title":"Great British Summer Game Jam","permalink":"/great-british-summer-game-jam"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/810470c9.a2924326.js b/assets/js/810470c9.4d1bff47.js
similarity index 75%
rename from assets/js/810470c9.a2924326.js
rename to assets/js/810470c9.4d1bff47.js
index c2cd64b49..db3cdc37f 100644
--- a/assets/js/810470c9.a2924326.js
+++ b/assets/js/810470c9.4d1bff47.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[23791],{65852:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>n,toc:()=>c});var n=a(76126),s=a(74848),o=a(28453);const i={authors:"christy",slug:"meet-the-playcanvas-team-kevin-rooney",title:"Meet the PlayCanvas team: Kevin Rooney",tags:["team"]},r=void 0,l={authorsImageUrls:[void 0]},c=[];function m(e){const t={a:"a",img:"img",p:"p",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Kevin",src:a(44250).A+"",width:"800",height:"600"})}),"\n",(0,s.jsxs)(t.p,{children:["In our latest instalment of this series we chat to Kevin, ",(0,s.jsx)(t.a,{href:"https://playcanvas.com",children:"PlayCanvas"}),"' Creative Director from Sligo, Ireland."]})]})}function p(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}},44250:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/team-kevin-2014-bb30ed49127fd4278ad69c5db5ca8e72.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>r});var n=a(96540);const s={},o=n.createContext(s);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:t},e.children)}},76126:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-kevin-rooney","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-30-meet-the-playcanvas-team-kevin-rooney.md","source":"@site/blog/2014-06-30-meet-the-playcanvas-team-kevin-rooney.md","title":"Meet the PlayCanvas team: Kevin Rooney","description":"Kevin","date":"2014-06-30T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":1.51,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-kevin-rooney","title":"Meet the PlayCanvas team: Kevin Rooney","tags":["team"]},"unlisted":false,"prevItem":{"title":"PlayCanvas Voted the Leading WebGL Engine","permalink":"/playcanvas-voted-number-1-webgl-engine-by-develop-magazine"},"nextItem":{"title":"Meet the PlayCanvas team: Dave Evans","permalink":"/meet-the-playcanvas-team-dave-evans"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[23791],{65852:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>n,toc:()=>c});var n=a(76126),s=a(74848),o=a(28453);const i={authors:"christy",slug:"meet-the-playcanvas-team-kevin-rooney",title:"Meet the PlayCanvas team: Kevin Rooney",tags:["team"]},r=void 0,l={authorsImageUrls:[void 0]},c=[];function m(e){const t={a:"a",img:"img",p:"p",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Kevin",src:a(44250).A+"",width:"800",height:"600"})}),"\n",(0,s.jsxs)(t.p,{children:["In our latest instalment of this series we chat to Kevin, ",(0,s.jsx)(t.a,{href:"https://playcanvas.com",children:"PlayCanvas"}),"' Creative Director from Sligo, Ireland."]})]})}function p(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}},44250:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/team-kevin-2014-bb30ed49127fd4278ad69c5db5ca8e72.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>r});var n=a(96540);const s={},o=n.createContext(s);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:t},e.children)}},76126:e=>{e.exports=JSON.parse('{"permalink":"/meet-the-playcanvas-team-kevin-rooney","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-30-meet-the-playcanvas-team-kevin-rooney.md","source":"@site/blog/2014-06-30-meet-the-playcanvas-team-kevin-rooney.md","title":"Meet the PlayCanvas team: Kevin Rooney","description":"Kevin","date":"2014-06-30T00:00:00.000Z","tags":[{"inline":true,"label":"team","permalink":"/tags/team"}],"readingTime":1.51,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"meet-the-playcanvas-team-kevin-rooney","title":"Meet the PlayCanvas team: Kevin Rooney","tags":["team"]},"unlisted":false,"prevItem":{"title":"PlayCanvas Voted the Leading WebGL Engine","permalink":"/playcanvas-voted-number-1-webgl-engine-by-develop-magazine"},"nextItem":{"title":"Meet the PlayCanvas team: Dave Evans","permalink":"/meet-the-playcanvas-team-dave-evans"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/8176fe8f.551994d5.js b/assets/js/8176fe8f.8bd79a1c.js
similarity index 63%
rename from assets/js/8176fe8f.551994d5.js
rename to assets/js/8176fe8f.8bd79a1c.js
index 2be1b9a8a..248f88c0a 100644
--- a/assets/js/8176fe8f.551994d5.js
+++ b/assets/js/8176fe8f.8bd79a1c.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[93708],{44190:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>p});var a=i(74015),n=i(74848),r=i(28453);const o={authors:"paulo",slug:"webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777",title:"Building WebAR Experiences - Developer Spotlight with Visionaries777",tags:["ar","webxr","spotlight"]},s=void 0,l={authorsImageUrls:[void 0]},p=[];function c(e){const t={a:"a",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:i(10677).A+"",children:(0,n.jsx)(t.img,{alt:"Nissan AR",src:i(67111).A+"",width:"1024",height:"568"})})}),"\n",(0,n.jsx)(t.p,{children:"Welcome to the second installment of Developer Spotlight! A series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web."}),"\n",(0,n.jsxs)(t.p,{children:["Today we are excited to be joined by Frantz Lasorne, co-founder of ",(0,n.jsx)(t.a,{href:"https://www.vz777.com/",children:"Visionaries777"}),"."]})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},10677:(e,t,i)=>{i.d(t,{A:()=>a});const a=i.p+"assets/files/v777-nissan-ar-2c0b1e1e57e106427b88cc8698cd6bd4.jpg"},67111:(e,t,i)=>{i.d(t,{A:()=>a});const a=i.p+"assets/images/v777-nissan-ar-2c0b1e1e57e106427b88cc8698cd6bd4.jpg"},28453:(e,t,i)=>{i.d(t,{R:()=>o,x:()=>s});var a=i(96540);const n={},r=a.createContext(n);function o(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),a.createElement(r.Provider,{value:t},e.children)}},74015:e=>{e.exports=JSON.parse('{"permalink":"/webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2022-09-28-webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777.md","source":"@site/blog/2022-09-28-webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777.md","title":"Building WebAR Experiences - Developer Spotlight with Visionaries777","description":"Nissan AR","date":"2022-09-28T00:00:00.000Z","tags":[{"inline":true,"label":"ar","permalink":"/tags/ar"},{"inline":true,"label":"webxr","permalink":"/tags/webxr"},{"inline":true,"label":"spotlight","permalink":"/tags/spotlight"}],"readingTime":9.665,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGBCxiefbbUlw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1654615914498?e=1730332800&v=beta&t=430DvI8uuos5obx7BhhHBqhT5TnNTv3q91eOOg6diII","key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777","title":"Building WebAR Experiences - Developer Spotlight with Visionaries777","tags":["ar","webxr","spotlight"]},"unlisted":false,"prevItem":{"title":"glTF Viewer Arrives on Mobile with AR Support","permalink":"/gltf-viewer-arrives-on-mobile-with-ar-support"},"nextItem":{"title":"Porting from Unity to PlayCanvas - Developer Spotlight with Christina Kaliora","permalink":"/porting-from-unity-to-playcanvas-developer-spotlight-with-christina-kaliora"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[93708],{44190:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>p});var a=i(74015),n=i(74848),r=i(28453);const s={authors:"paulo",slug:"webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777",title:"Building WebAR Experiences - Developer Spotlight with Visionaries777",tags:["ar","webxr","spotlight"]},o=void 0,l={authorsImageUrls:[void 0]},p=[];function c(e){const t={a:"a",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:i(10677).A+"",children:(0,n.jsx)(t.img,{alt:"Nissan AR",src:i(67111).A+"",width:"1024",height:"568"})})}),"\n",(0,n.jsx)(t.p,{children:"Welcome to the second installment of Developer Spotlight! A series of blog articles where we talk to developers about how they use PlayCanvas and showcase the fantastic work they are doing on the Web."}),"\n",(0,n.jsxs)(t.p,{children:["Today we are excited to be joined by Frantz Lasorne, co-founder of ",(0,n.jsx)(t.a,{href:"https://www.vz777.com/",children:"Visionaries777"}),"."]})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},10677:(e,t,i)=>{i.d(t,{A:()=>a});const a=i.p+"assets/files/v777-nissan-ar-2c0b1e1e57e106427b88cc8698cd6bd4.jpg"},67111:(e,t,i)=>{i.d(t,{A:()=>a});const a=i.p+"assets/images/v777-nissan-ar-2c0b1e1e57e106427b88cc8698cd6bd4.jpg"},28453:(e,t,i)=>{i.d(t,{R:()=>s,x:()=>o});var a=i(96540);const n={},r=a.createContext(n);function s(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),a.createElement(r.Provider,{value:t},e.children)}},74015:e=>{e.exports=JSON.parse('{"permalink":"/webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2022-09-28-webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777.md","source":"@site/blog/2022-09-28-webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777.md","title":"Building WebAR Experiences - Developer Spotlight with Visionaries777","description":"Nissan AR","date":"2022-09-28T00:00:00.000Z","tags":[{"inline":true,"label":"ar","permalink":"/tags/ar"},{"inline":true,"label":"webxr","permalink":"/tags/webxr"},{"inline":true,"label":"spotlight","permalink":"/tags/spotlight"}],"readingTime":9.665,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777","title":"Building WebAR Experiences - Developer Spotlight with Visionaries777","tags":["ar","webxr","spotlight"]},"unlisted":false,"prevItem":{"title":"glTF Viewer Arrives on Mobile with AR Support","permalink":"/gltf-viewer-arrives-on-mobile-with-ar-support"},"nextItem":{"title":"Porting from Unity to PlayCanvas - Developer Spotlight with Christina Kaliora","permalink":"/porting-from-unity-to-playcanvas-developer-spotlight-with-christina-kaliora"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/88a4ecf9.c8febaf8.js b/assets/js/88a4ecf9.4398bb1c.js
similarity index 91%
rename from assets/js/88a4ecf9.c8febaf8.js
rename to assets/js/88a4ecf9.4398bb1c.js
index 4fdf0f7e6..fd040025e 100644
--- a/assets/js/88a4ecf9.c8febaf8.js
+++ b/assets/js/88a4ecf9.4398bb1c.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[44135],{68350:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var s=t(6418),n=t(74848),o=t(28453);const i={authors:"christy",slug:"playcanvas-update-27-06-14",title:"PlayCanvas Update 27/06/14"},r=void 0,c={authorsImageUrls:[void 0]},l=[{value:"New Custom and Built-In Post Effects",id:"new-custom-and-built-in-post-effects",level:3},{value:"Events",id:"events",level:3},{value:"PlayCanvas Projects",id:"playcanvas-projects",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function h(e){const a={a:"a",br:"br",em:"em",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(a.p,{children:["No\xa0one ever called us inactive, we've had a busy week and we want to tell you all about it. Here\u2019s a run down on improvements to the engine and what happened behind the scenes at\xa0",(0,n.jsx)(a.a,{href:"https://playcanvas.com/",children:"PlayCanvas"}),"\xa0this week."]}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(13590).A+"",children:(0,n.jsx)(a.img,{alt:"ColorTanks",src:t(64148).A+"",width:"959",height:"496"})}),(0,n.jsx)(a.br,{}),"\n",(0,n.jsx)(a.em,{children:"The award winning colorTanks"})]}),"\n",(0,n.jsx)(a.h3,{id:"new-custom-and-built-in-post-effects",children:"New Custom and Built-In Post Effects"}),"\n",(0,n.jsxs)(a.p,{children:["Now you can select ",(0,n.jsx)(a.a,{href:"https://developer.playcanvas.com/user-manual/graphics/posteffects/",children:"new modifications"})," for your entity or you can create your own. we even have a ",(0,n.jsx)(a.a,{href:"https://developer.playcanvas.com/tutorials/custom-posteffect/",children:"step by step guide"})," to help you write the custom script."]}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(43931).A+"",children:(0,n.jsx)(a.img,{alt:"Post Effects",src:t(67933).A+"",width:"786",height:"443"})}),(0,n.jsx)(a.br,{}),"\n",(0,n.jsx)(a.em,{children:"Beautiful Post Effects on Playbot"})]}),"\n",(0,n.jsx)(a.h3,{id:"events",children:"Events"}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{href:"https://blog.playcanvas.com/meet-the-playcanvas-team-will-eastcott/",children:"Will"})," made a trip to Spain as he showed off some Cloud Game Development at ",(0,n.jsx)(a.a,{href:"https://twitter.com/playcanvas/status/481798129730457600",children:"ARM's Booth"})," in Barcelona and ",(0,n.jsx)(a.a,{href:"https://blog.playcanvas.com/meet-the-playcanvas-team-dave-evans/",children:"Dave"})," gave attendees an introduction to PlayCanvas at\xa0a London event warming up to the ",(0,n.jsx)(a.a,{href:"https://twitter.com/GBSGameJam",children:"GBSG Jam"}),"."]}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(55663).A+"",children:(0,n.jsx)(a.img,{alt:"Arm Booth",src:t(91853).A+"",width:"600",height:"600"})}),(0,n.jsx)(a.br,{}),"\n",(0,n.jsx)(a.em,{children:"Showing off in Barcelona"})]}),"\n",(0,n.jsx)(a.h3,{id:"playcanvas-projects",children:"PlayCanvas Projects"}),"\n",(0,n.jsxs)(a.p,{children:["Some members of the PlayCanvas Community made real strides with their ",(0,n.jsx)(a.a,{href:"https://playcanvas.com/explore/active",children:"projects"})," too. Check out ",(0,n.jsx)(a.a,{href:"https://playcanv.as/p/thL3phaK/",children:"this"})," great game by PlayCanvas user ",(0,n.jsx)(a.a,{href:"https://playcanvas.com/user/rerofumi",children:"rerofumi"}),"."]}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(23933).A+"",children:(0,n.jsx)(a.img,{alt:"Tamaaanya",src:t(57399).A+"",width:"700",height:"404"})}),(0,n.jsx)(a.br,{}),"\n",(0,n.jsx)(a.em,{children:"One of your five a day: 'Tamaaanya' a cute carrot munching game made by PlayCanvas user rerofumi"})]}),"\n",(0,n.jsxs)(a.p,{children:["Also, PlayCanvas Senior Engineer ",(0,n.jsx)(a.a,{href:"https://blog.playcanvas.com/meet-the-playcanvas-team-maksims-mihejevs/",children:"Max"})," gave his award winning game colorTanks\xa0a facelift too. Give it a try ",(0,n.jsx)(a.a,{href:"https://tanx.io/",children:"here"}),"!"]}),"\n",(0,n.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,n.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,n.jsxs)(a.li,{children:["Like the\xa0",(0,n.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,n.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,n.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},23933:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/files/Tamaanya-26d36152ce49015e9e3510f6bb796aa0.jpg"},55663:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/files/armbooth-fce2842c7d301e7b1734ba7591ffd795.jpg"},43931:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/files/posteffects2-72d9ae9eeb27a6fab4df333b7f2c8374.png"},13590:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/files/tanks-a4736ed86c9cf27c2b3a8de799ad6b2b.jpg"},57399:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/images/Tamaanya-26d36152ce49015e9e3510f6bb796aa0.jpg"},91853:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/images/armbooth-fce2842c7d301e7b1734ba7591ffd795.jpg"},67933:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/images/posteffects2-72d9ae9eeb27a6fab4df333b7f2c8374.png"},64148:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/images/tanks-a4736ed86c9cf27c2b3a8de799ad6b2b.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>r});var s=t(96540);const n={},o=s.createContext(n);function i(e){const a=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(o.Provider,{value:a},e.children)}},6418:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-27-06-14","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-27-playcanvas-update-27-06-14.md","source":"@site/blog/2014-06-27-playcanvas-update-27-06-14.md","title":"PlayCanvas Update 27/06/14","description":"No\xa0one ever called us inactive, we\'ve had a busy week and we want to tell you all about it. Here\u2019s a run down on improvements to the engine and what happened behind the scenes at\xa0PlayCanvas\xa0this week.","date":"2014-06-27T00:00:00.000Z","tags":[],"readingTime":1.14,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-27-06-14","title":"PlayCanvas Update 27/06/14"},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Dave Evans","permalink":"/meet-the-playcanvas-team-dave-evans"},"nextItem":{"title":"New Custom and Built-in Post Effects","permalink":"/new-custom-and-built-in-post-effects"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[44135],{68350:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var s=t(6418),n=t(74848),o=t(28453);const i={authors:"christy",slug:"playcanvas-update-27-06-14",title:"PlayCanvas Update 27/06/14"},r=void 0,c={authorsImageUrls:[void 0]},l=[{value:"New Custom and Built-In Post Effects",id:"new-custom-and-built-in-post-effects",level:3},{value:"Events",id:"events",level:3},{value:"PlayCanvas Projects",id:"playcanvas-projects",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function h(e){const a={a:"a",br:"br",em:"em",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(a.p,{children:["No\xa0one ever called us inactive, we've had a busy week and we want to tell you all about it. Here\u2019s a run down on improvements to the engine and what happened behind the scenes at\xa0",(0,n.jsx)(a.a,{href:"https://playcanvas.com/",children:"PlayCanvas"}),"\xa0this week."]}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(13590).A+"",children:(0,n.jsx)(a.img,{alt:"ColorTanks",src:t(64148).A+"",width:"959",height:"496"})}),(0,n.jsx)(a.br,{}),"\n",(0,n.jsx)(a.em,{children:"The award winning colorTanks"})]}),"\n",(0,n.jsx)(a.h3,{id:"new-custom-and-built-in-post-effects",children:"New Custom and Built-In Post Effects"}),"\n",(0,n.jsxs)(a.p,{children:["Now you can select ",(0,n.jsx)(a.a,{href:"https://developer.playcanvas.com/user-manual/graphics/posteffects/",children:"new modifications"})," for your entity or you can create your own. we even have a ",(0,n.jsx)(a.a,{href:"https://developer.playcanvas.com/tutorials/custom-posteffect/",children:"step by step guide"})," to help you write the custom script."]}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(43931).A+"",children:(0,n.jsx)(a.img,{alt:"Post Effects",src:t(67933).A+"",width:"786",height:"443"})}),(0,n.jsx)(a.br,{}),"\n",(0,n.jsx)(a.em,{children:"Beautiful Post Effects on Playbot"})]}),"\n",(0,n.jsx)(a.h3,{id:"events",children:"Events"}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{href:"https://blog.playcanvas.com/meet-the-playcanvas-team-will-eastcott/",children:"Will"})," made a trip to Spain as he showed off some Cloud Game Development at ",(0,n.jsx)(a.a,{href:"https://twitter.com/playcanvas/status/481798129730457600",children:"ARM's Booth"})," in Barcelona and ",(0,n.jsx)(a.a,{href:"https://blog.playcanvas.com/meet-the-playcanvas-team-dave-evans/",children:"Dave"})," gave attendees an introduction to PlayCanvas at\xa0a London event warming up to the ",(0,n.jsx)(a.a,{href:"https://twitter.com/GBSGameJam",children:"GBSG Jam"}),"."]}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(55663).A+"",children:(0,n.jsx)(a.img,{alt:"Arm Booth",src:t(91853).A+"",width:"600",height:"600"})}),(0,n.jsx)(a.br,{}),"\n",(0,n.jsx)(a.em,{children:"Showing off in Barcelona"})]}),"\n",(0,n.jsx)(a.h3,{id:"playcanvas-projects",children:"PlayCanvas Projects"}),"\n",(0,n.jsxs)(a.p,{children:["Some members of the PlayCanvas Community made real strides with their ",(0,n.jsx)(a.a,{href:"https://playcanvas.com/explore/active",children:"projects"})," too. Check out ",(0,n.jsx)(a.a,{href:"https://playcanv.as/p/thL3phaK/",children:"this"})," great game by PlayCanvas user ",(0,n.jsx)(a.a,{href:"https://playcanvas.com/user/rerofumi",children:"rerofumi"}),"."]}),"\n",(0,n.jsxs)(a.p,{children:[(0,n.jsx)(a.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(23933).A+"",children:(0,n.jsx)(a.img,{alt:"Tamaaanya",src:t(57399).A+"",width:"700",height:"404"})}),(0,n.jsx)(a.br,{}),"\n",(0,n.jsx)(a.em,{children:"One of your five a day: 'Tamaaanya' a cute carrot munching game made by PlayCanvas user rerofumi"})]}),"\n",(0,n.jsxs)(a.p,{children:["Also, PlayCanvas Senior Engineer ",(0,n.jsx)(a.a,{href:"https://blog.playcanvas.com/meet-the-playcanvas-team-maksims-mihejevs/",children:"Max"})," gave his award winning game colorTanks\xa0a facelift too. Give it a try ",(0,n.jsx)(a.a,{href:"https://tanx.io/",children:"here"}),"!"]}),"\n",(0,n.jsx)(a.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Follow us on Twitter,\xa0",(0,n.jsx)(a.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,n.jsxs)(a.li,{children:["Like the\xa0",(0,n.jsx)(a.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,n.jsxs)(a.li,{children:["Join and start discussions on the\xa0",(0,n.jsx)(a.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},23933:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/files/Tamaanya-26d36152ce49015e9e3510f6bb796aa0.jpg"},55663:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/files/armbooth-fce2842c7d301e7b1734ba7591ffd795.jpg"},43931:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/files/posteffects2-72d9ae9eeb27a6fab4df333b7f2c8374.png"},13590:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/files/tanks-a4736ed86c9cf27c2b3a8de799ad6b2b.jpg"},57399:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/images/Tamaanya-26d36152ce49015e9e3510f6bb796aa0.jpg"},91853:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/images/armbooth-fce2842c7d301e7b1734ba7591ffd795.jpg"},67933:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/images/posteffects2-72d9ae9eeb27a6fab4df333b7f2c8374.png"},64148:(e,a,t)=>{t.d(a,{A:()=>s});const s=t.p+"assets/images/tanks-a4736ed86c9cf27c2b3a8de799ad6b2b.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>r});var s=t(96540);const n={},o=s.createContext(n);function i(e){const a=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(o.Provider,{value:a},e.children)}},6418:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-27-06-14","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-27-playcanvas-update-27-06-14.md","source":"@site/blog/2014-06-27-playcanvas-update-27-06-14.md","title":"PlayCanvas Update 27/06/14","description":"No\xa0one ever called us inactive, we\'ve had a busy week and we want to tell you all about it. Here\u2019s a run down on improvements to the engine and what happened behind the scenes at\xa0PlayCanvas\xa0this week.","date":"2014-06-27T00:00:00.000Z","tags":[],"readingTime":1.14,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-27-06-14","title":"PlayCanvas Update 27/06/14"},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Dave Evans","permalink":"/meet-the-playcanvas-team-dave-evans"},"nextItem":{"title":"New Custom and Built-in Post Effects","permalink":"/new-custom-and-built-in-post-effects"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/9189c04d.07e29596.js b/assets/js/9189c04d.07e29596.js
new file mode 100644
index 000000000..57f434dc0
--- /dev/null
+++ b/assets/js/9189c04d.07e29596.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[95565],{98306:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>c});var n=a(55673),r=a(74848),o=a(28453);const s={authors:"christy",published:!1,slug:"playcanvas-referrals-just-a-little-thank-you",title:"PlayCanvas Referrals: Just a little Thank You"},l=void 0,i={authorsImageUrls:[void 0]},c=[];function u(t){const e={p:"p",strong:"strong",...(0,o.R)(),...t.components};return(0,r.jsxs)(e.p,{children:["The ",(0,r.jsx)(e.strong,{children:"PlayCanvas Community"})," is growing all the time and we know that some of that growth is down to your hard work in ",(0,r.jsx)(e.strong,{children:"promoting"})," the engine."]})}function h(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(u,{...t})}):u(t)}},28453:(t,e,a)=>{a.d(e,{R:()=>s,x:()=>l});var n=a(96540);const r={},o=n.createContext(r);function s(t){const e=n.useContext(o);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function l(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:s(t.components),n.createElement(o.Provider,{value:e},t.children)}},55673:t=>{t.exports=JSON.parse('{"permalink":"/playcanvas-referrals-just-a-little-thank-you","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-11-04-playcanvas-referrals-just-a-little-thank-you.md","source":"@site/blog/2014-11-04-playcanvas-referrals-just-a-little-thank-you.md","title":"PlayCanvas Referrals: Just a little Thank You","description":"The PlayCanvas Community is growing all the time and we know that some of that growth is down to your hard work in promoting the engine.","date":"2014-11-04T00:00:00.000Z","tags":[],"readingTime":1,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","published":false,"slug":"playcanvas-referrals-just-a-little-thank-you","title":"PlayCanvas Referrals: Just a little Thank You"},"unlisted":false,"prevItem":{"title":"PLAYHACK November - Camera types","permalink":"/playhack-november-camera-types"},"nextItem":{"title":"PLAYHACK November - Adding Tank Controls","permalink":"/playhack-november-adding-tank-controls"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/9189c04d.0fcecdc9.js b/assets/js/9189c04d.0fcecdc9.js
deleted file mode 100644
index 4fe8b20aa..000000000
--- a/assets/js/9189c04d.0fcecdc9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[95565],{98306:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>n,toc:()=>c});var n=a(55673),o=a(74848),s=a(28453);const r={authors:"christy",published:!1,slug:"playcanvas-referrals-just-a-little-thank-you",title:"PlayCanvas Referrals: Just a little Thank You"},l=void 0,i={authorsImageUrls:[void 0]},c=[];function h(t){const e={p:"p",strong:"strong",...(0,s.R)(),...t.components};return(0,o.jsxs)(e.p,{children:["The ",(0,o.jsx)(e.strong,{children:"PlayCanvas Community"})," is growing all the time and we know that some of that growth is down to your hard work in ",(0,o.jsx)(e.strong,{children:"promoting"})," the engine."]})}function u(t={}){const{wrapper:e}={...(0,s.R)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(h,{...t})}):h(t)}},28453:(t,e,a)=>{a.d(e,{R:()=>r,x:()=>l});var n=a(96540);const o={},s=n.createContext(o);function r(t){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function l(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:r(t.components),n.createElement(s.Provider,{value:e},t.children)}},55673:t=>{t.exports=JSON.parse('{"permalink":"/playcanvas-referrals-just-a-little-thank-you","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-11-04-playcanvas-referrals-just-a-little-thank-you.md","source":"@site/blog/2014-11-04-playcanvas-referrals-just-a-little-thank-you.md","title":"PlayCanvas Referrals: Just a little Thank You","description":"The PlayCanvas Community is growing all the time and we know that some of that growth is down to your hard work in promoting the engine.","date":"2014-11-04T00:00:00.000Z","tags":[],"readingTime":1,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","published":false,"slug":"playcanvas-referrals-just-a-little-thank-you","title":"PlayCanvas Referrals: Just a little Thank You"},"unlisted":false,"prevItem":{"title":"PLAYHACK November - Camera types","permalink":"/playhack-november-camera-types"},"nextItem":{"title":"PLAYHACK November - Adding Tank Controls","permalink":"/playhack-november-adding-tank-controls"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/9700f9ac.0621f2f2.js b/assets/js/9700f9ac.97a26bb9.js
similarity index 53%
rename from assets/js/9700f9ac.0621f2f2.js
rename to assets/js/9700f9ac.97a26bb9.js
index 442405f27..2ae32a8d3 100644
--- a/assets/js/9700f9ac.0621f2f2.js
+++ b/assets/js/9700f9ac.97a26bb9.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[84124],{32719:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var n=a(65097),s=a(74848),r=a(28453);const o={authors:"christy",slug:"snappy-new-update",title:"Snappy New Update",tags:["editor"]},i=void 0,p={authorsImageUrls:[void 0]},c=[];function l(e){const t={a:"a",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"Game developers and the idea of perfection are never far apart and we are pleased to announce a new feature that allows you to be as precise as your project demands. If you were thinking what we were thinking then...SNAP!"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(77309).A+"",children:(0,s.jsx)(t.img,{alt:"snap screenshot",src:a(37423).A+"",width:"800",height:"428"})})})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},77309:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/editor-snap-enabled-88bd943222ca03ebe0be531ebc2967ab.jpg"},37423:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/editor-snap-enabled-88bd943222ca03ebe0be531ebc2967ab.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>i});var n=a(96540);const s={},r=n.createContext(s);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(r.Provider,{value:t},e.children)}},65097:e=>{e.exports=JSON.parse('{"permalink":"/snappy-new-update","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-12-snappy-new-update.md","source":"@site/blog/2014-06-12-snappy-new-update.md","title":"Snappy New Update","description":"Game developers and the idea of perfection are never far apart and we are pleased to announce a new feature that allows you to be as precise as your project demands. If you were thinking what we were thinking then...SNAP!","date":"2014-06-12T00:00:00.000Z","tags":[{"inline":true,"label":"editor","permalink":"/tags/editor"}],"readingTime":0.77,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"snappy-new-update","title":"Snappy New Update","tags":["editor"]},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 13/06/14","permalink":"/playcanvas-update"},"nextItem":{"title":"iOS WebGL Support","permalink":"/ios-webgl-support"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[84124],{32719:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var n=a(65097),r=a(74848),s=a(28453);const o={authors:"christy",slug:"snappy-new-update",title:"Snappy New Update",tags:["editor"]},i=void 0,p={authorsImageUrls:[void 0]},c=[];function d(e){const t={a:"a",img:"img",p:"p",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:"Game developers and the idea of perfection are never far apart and we are pleased to announce a new feature that allows you to be as precise as your project demands. If you were thinking what we were thinking then...SNAP!"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(77309).A+"",children:(0,r.jsx)(t.img,{alt:"snap screenshot",src:a(37423).A+"",width:"800",height:"428"})})})]})}function l(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},77309:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/editor-snap-enabled-88bd943222ca03ebe0be531ebc2967ab.jpg"},37423:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/editor-snap-enabled-88bd943222ca03ebe0be531ebc2967ab.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>i});var n=a(96540);const r={},s=n.createContext(r);function o(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(s.Provider,{value:t},e.children)}},65097:e=>{e.exports=JSON.parse('{"permalink":"/snappy-new-update","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-12-snappy-new-update.md","source":"@site/blog/2014-06-12-snappy-new-update.md","title":"Snappy New Update","description":"Game developers and the idea of perfection are never far apart and we are pleased to announce a new feature that allows you to be as precise as your project demands. If you were thinking what we were thinking then...SNAP!","date":"2014-06-12T00:00:00.000Z","tags":[{"inline":true,"label":"editor","permalink":"/tags/editor"}],"readingTime":0.77,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"snappy-new-update","title":"Snappy New Update","tags":["editor"]},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 13/06/14","permalink":"/playcanvas-update"},"nextItem":{"title":"iOS WebGL Support","permalink":"/ios-webgl-support"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/9971e8ff.2c2b2003.js b/assets/js/9971e8ff.ef832f6b.js
similarity index 57%
rename from assets/js/9971e8ff.2c2b2003.js
rename to assets/js/9971e8ff.ef832f6b.js
index db4e7b8d3..5da7bb3de 100644
--- a/assets/js/9971e8ff.2c2b2003.js
+++ b/assets/js/9971e8ff.ef832f6b.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[94209],{25207:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var a=s(225),n=s(74848),o=s(28453);const i={authors:"christy",slug:"new-custom-and-built-in-post-effects",title:"New Custom and Built-in Post Effects"},r=void 0,c={authorsImageUrls:[void 0]},l=[{value:"Built-in Post Effects",id:"built-in-post-effects",level:2},{value:"Custom Post Effects",id:"custom-post-effects",level:2}];function f(e){const t={a:"a",br:"br",em:"em",h2:"h2",img:"img",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"We want your projects to look as good\xa0as you imagine them and today we are pleased to announce brand new tools to manipulate your entities. We have recently released a way for you to add Post Processing Effects to your applications and it has never been easier."})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(88896).A+"",children:(0,n.jsx)(t.img,{alt:"Before",src:s(26694).A+"",width:"786",height:"445"})}),(0,n.jsx)(t.br,{}),"\n",(0,n.jsx)(t.em,{children:"Plain old boring scene"})]}),"\n",(0,n.jsx)(t.h2,{id:"built-in-post-effects",children:"Built-in Post Effects"}),"\n",(0,n.jsxs)(t.p,{children:["The visual element of gaming experiences is as important as any other and we want the projects\xa0made by our ",(0,n.jsx)(t.a,{href:"https://playcanvas.com",children:"PlayCanvas"})," community to look as good as they can. Adding to our already extensive ",(0,n.jsx)(t.a,{href:"https://github.com/playcanvas/engine/tree/main/scripts/posteffects",children:"library of Post Effects"}),", we have spoiled you lucky PlayCanvas users as you can now choose from effects such as Bloom, Brightness-Contrast, Hue-Saturation, FXAA, Sepia and Vignette with a simple\xa0right click on the camera entity in the hierarchy. Its as easy as that! Thanks to PlayCanvas you don't have to be an artist to make your games look cool. Want to find out more about the new built-in post effects? Cast your eyes ",(0,n.jsx)(t.a,{href:"https://developer.playcanvas.com/user-manual/graphics/posteffects/",children:"here"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(43931).A+"",children:(0,n.jsx)(t.img,{alt:"Post Effects",src:s(67933).A+"",width:"786",height:"443"})}),(0,n.jsx)(t.br,{}),"\n",(0,n.jsx)(t.em,{children:"With added post processing effects"})]}),"\n",(0,n.jsx)(t.h2,{id:"custom-post-effects",children:"Custom Post Effects"}),"\n",(0,n.jsxs)(t.p,{children:["We count ourselves lucky to work with very creative PlayCanvas users and many members have an incredible eye for detail. If you know some JavaScript and GLSL then you can create your own Post Effects, using our ",(0,n.jsx)(t.a,{href:"https://developer.playcanvas.com/tutorials/custom-posteffect/",children:"step by step guide"})," on writing the script for your effect/s and a library of\xa0",(0,n.jsx)(t.a,{href:"https://github.com/playcanvas/engine/tree/main/scripts/posteffects",children:"existing Post Effects"}),"\xa0for reference you can really bring your entities to life (well almost)."]}),"\n",(0,n.jsx)(t.p,{children:"Now we have given you the tools, it's time for you to take your project to the next level. Modify\xa0your entities and give your game\xa0a truly stunning atmosphere."})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(f,{...e})}):f(e)}},88896:(e,t,s)=>{s.d(t,{A:()=>a});const a=s.p+"assets/files/posteffects1-766bfc08539e659c26f0c334315bfa7d.png"},43931:(e,t,s)=>{s.d(t,{A:()=>a});const a=s.p+"assets/files/posteffects2-72d9ae9eeb27a6fab4df333b7f2c8374.png"},26694:(e,t,s)=>{s.d(t,{A:()=>a});const a=s.p+"assets/images/posteffects1-766bfc08539e659c26f0c334315bfa7d.png"},67933:(e,t,s)=>{s.d(t,{A:()=>a});const a=s.p+"assets/images/posteffects2-72d9ae9eeb27a6fab4df333b7f2c8374.png"},28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>r});var a=s(96540);const n={},o=a.createContext(n);function i(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),a.createElement(o.Provider,{value:t},e.children)}},225:e=>{e.exports=JSON.parse('{"permalink":"/new-custom-and-built-in-post-effects","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-26-new-custom-and-built-in-post-effects.md","source":"@site/blog/2014-06-26-new-custom-and-built-in-post-effects.md","title":"New Custom and Built-in Post Effects","description":"We want your projects to look as good\xa0as you imagine them and today we are pleased to announce brand new tools to manipulate your entities. We have recently released a way for you to add Post Processing Effects to your applications and it has never been easier.","date":"2014-06-26T00:00:00.000Z","tags":[],"readingTime":1.35,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"new-custom-and-built-in-post-effects","title":"New Custom and Built-in Post Effects"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 27/06/14","permalink":"/playcanvas-update-27-06-14"},"nextItem":{"title":"Meet the PlayCanvas team: Maksims Mihejevs","permalink":"/meet-the-playcanvas-team-maksims-mihejevs"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[94209],{25207:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>n,toc:()=>l});var n=s(225),a=s(74848),o=s(28453);const i={authors:"christy",slug:"new-custom-and-built-in-post-effects",title:"New Custom and Built-in Post Effects"},r=void 0,c={authorsImageUrls:[void 0]},l=[{value:"Built-in Post Effects",id:"built-in-post-effects",level:2},{value:"Custom Post Effects",id:"custom-post-effects",level:2}];function f(e){const t={a:"a",br:"br",em:"em",h2:"h2",img:"img",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:(0,a.jsx)(t.strong,{children:"We want your projects to look as good\xa0as you imagine them and today we are pleased to announce brand new tools to manipulate your entities. We have recently released a way for you to add Post Processing Effects to your applications and it has never been easier."})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(88896).A+"",children:(0,a.jsx)(t.img,{alt:"Before",src:s(26694).A+"",width:"786",height:"445"})}),(0,a.jsx)(t.br,{}),"\n",(0,a.jsx)(t.em,{children:"Plain old boring scene"})]}),"\n",(0,a.jsx)(t.h2,{id:"built-in-post-effects",children:"Built-in Post Effects"}),"\n",(0,a.jsxs)(t.p,{children:["The visual element of gaming experiences is as important as any other and we want the projects\xa0made by our ",(0,a.jsx)(t.a,{href:"https://playcanvas.com",children:"PlayCanvas"})," community to look as good as they can. Adding to our already extensive ",(0,a.jsx)(t.a,{href:"https://github.com/playcanvas/engine/tree/main/scripts/posteffects",children:"library of Post Effects"}),", we have spoiled you lucky PlayCanvas users as you can now choose from effects such as Bloom, Brightness-Contrast, Hue-Saturation, FXAA, Sepia and Vignette with a simple\xa0right click on the camera entity in the hierarchy. Its as easy as that! Thanks to PlayCanvas you don't have to be an artist to make your games look cool. Want to find out more about the new built-in post effects? Cast your eyes ",(0,a.jsx)(t.a,{href:"https://developer.playcanvas.com/user-manual/graphics/posteffects/",children:"here"}),"."]}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(43931).A+"",children:(0,a.jsx)(t.img,{alt:"Post Effects",src:s(67933).A+"",width:"786",height:"443"})}),(0,a.jsx)(t.br,{}),"\n",(0,a.jsx)(t.em,{children:"With added post processing effects"})]}),"\n",(0,a.jsx)(t.h2,{id:"custom-post-effects",children:"Custom Post Effects"}),"\n",(0,a.jsxs)(t.p,{children:["We count ourselves lucky to work with very creative PlayCanvas users and many members have an incredible eye for detail. If you know some JavaScript and GLSL then you can create your own Post Effects, using our ",(0,a.jsx)(t.a,{href:"https://developer.playcanvas.com/tutorials/custom-posteffect/",children:"step by step guide"})," on writing the script for your effect/s and a library of\xa0",(0,a.jsx)(t.a,{href:"https://github.com/playcanvas/engine/tree/main/scripts/posteffects",children:"existing Post Effects"}),"\xa0for reference you can really bring your entities to life (well almost)."]}),"\n",(0,a.jsx)(t.p,{children:"Now we have given you the tools, it's time for you to take your project to the next level. Modify\xa0your entities and give your game\xa0a truly stunning atmosphere."})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(f,{...e})}):f(e)}},88896:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/files/posteffects1-766bfc08539e659c26f0c334315bfa7d.png"},43931:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/files/posteffects2-72d9ae9eeb27a6fab4df333b7f2c8374.png"},26694:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/posteffects1-766bfc08539e659c26f0c334315bfa7d.png"},67933:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/posteffects2-72d9ae9eeb27a6fab4df333b7f2c8374.png"},28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>r});var n=s(96540);const a={},o=n.createContext(a);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(o.Provider,{value:t},e.children)}},225:e=>{e.exports=JSON.parse('{"permalink":"/new-custom-and-built-in-post-effects","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-26-new-custom-and-built-in-post-effects.md","source":"@site/blog/2014-06-26-new-custom-and-built-in-post-effects.md","title":"New Custom and Built-in Post Effects","description":"We want your projects to look as good\xa0as you imagine them and today we are pleased to announce brand new tools to manipulate your entities. We have recently released a way for you to add Post Processing Effects to your applications and it has never been easier.","date":"2014-06-26T00:00:00.000Z","tags":[],"readingTime":1.35,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"new-custom-and-built-in-post-effects","title":"New Custom and Built-in Post Effects"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 27/06/14","permalink":"/playcanvas-update-27-06-14"},"nextItem":{"title":"Meet the PlayCanvas team: Maksims Mihejevs","permalink":"/meet-the-playcanvas-team-maksims-mihejevs"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/9a2f41a5.8bce858b.js b/assets/js/9a2f41a5.8bce858b.js
deleted file mode 100644
index f04b3a003..000000000
--- a/assets/js/9a2f41a5.8bce858b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[52978],{56310:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>n,toc:()=>c});var n=a(67952),s=a(74848),o=a(28453);const i={authors:"christy",slug:"playcanvas-update-200614",title:"PlayCanvas Update 20/06/14"},r=void 0,l={authorsImageUrls:[void 0]},c=[];function p(e){const t={a:"a",p:"p",...(0,o.R)(),...e.components};return(0,s.jsxs)(t.p,{children:["Now it really has been a busy week for us and we have so much to tell you about. Here's a run down on improvements to the engine and what happened behind the scenes at ",(0,s.jsx)(t.a,{href:"https://playcanvas.com/",children:"PlayCanvas"})," this week."]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},28453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>r});var n=a(96540);const s={},o=n.createContext(s);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:t},e.children)}},67952:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-200614","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-20-playcanvas-update-200614.md","source":"@site/blog/2014-06-20-playcanvas-update-200614.md","title":"PlayCanvas Update 20/06/14","description":"Now it really has been a busy week for us and we have so much to tell you about. Here\'s a run down on improvements to the engine and what happened behind the scenes at PlayCanvas this week.","date":"2014-06-20T00:00:00.000Z","tags":[],"readingTime":1.835,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-200614","title":"PlayCanvas Update 20/06/14"},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Vaios Kalpias-Illias","permalink":"/meet-the-playcanvas-team-vaios-kalpias-illias"},"nextItem":{"title":"Virtual Reality and the future of Web Based Gaming","permalink":"/virtual-reality-and-the-future-of-web-based-gaming"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/9a2f41a5.e5c4abf8.js b/assets/js/9a2f41a5.e5c4abf8.js
new file mode 100644
index 000000000..7c188c0f8
--- /dev/null
+++ b/assets/js/9a2f41a5.e5c4abf8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[52978],{56310:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>n,toc:()=>c});var n=t(67952),s=t(74848),o=t(28453);const r={authors:"christy",slug:"playcanvas-update-200614",title:"PlayCanvas Update 20/06/14"},i=void 0,l={authorsImageUrls:[void 0]},c=[];function u(e){const a={a:"a",p:"p",...(0,o.R)(),...e.components};return(0,s.jsxs)(a.p,{children:["Now it really has been a busy week for us and we have so much to tell you about. Here's a run down on improvements to the engine and what happened behind the scenes at ",(0,s.jsx)(a.a,{href:"https://playcanvas.com/",children:"PlayCanvas"})," this week."]})}function p(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},28453:(e,a,t)=>{t.d(a,{R:()=>r,x:()=>i});var n=t(96540);const s={},o=n.createContext(s);function r(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(o.Provider,{value:a},e.children)}},67952:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-200614","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-20-playcanvas-update-200614.md","source":"@site/blog/2014-06-20-playcanvas-update-200614.md","title":"PlayCanvas Update 20/06/14","description":"Now it really has been a busy week for us and we have so much to tell you about. Here\'s a run down on improvements to the engine and what happened behind the scenes at PlayCanvas this week.","date":"2014-06-20T00:00:00.000Z","tags":[],"readingTime":1.835,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-200614","title":"PlayCanvas Update 20/06/14"},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Vaios Kalpias-Illias","permalink":"/meet-the-playcanvas-team-vaios-kalpias-illias"},"nextItem":{"title":"Virtual Reality and the future of Web Based Gaming","permalink":"/virtual-reality-and-the-future-of-web-based-gaming"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/9d25b1b2.133fec60.js b/assets/js/9d25b1b2.a45a2164.js
similarity index 91%
rename from assets/js/9d25b1b2.133fec60.js
rename to assets/js/9d25b1b2.a45a2164.js
index a4fb7e1d5..f318a53b8 100644
--- a/assets/js/9d25b1b2.133fec60.js
+++ b/assets/js/9d25b1b2.a45a2164.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[85572],{40706:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>n,toc:()=>c});var n=a(67952),s=a(74848),o=a(28453);const i={authors:"christy",slug:"playcanvas-update-200614",title:"PlayCanvas Update 20/06/14"},r=void 0,l={authorsImageUrls:[void 0]},c=[{value:"User Camera View",id:"user-camera-view",level:3},{value:"Entity Context Menu",id:"entity-context-menu",level:3},{value:"Error Console",id:"error-console",level:3},{value:"Shadow Distance",id:"shadow-distance",level:3},{value:"Events & Oculus Rift Support",id:"events--oculus-rift-support",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function h(e){const t={a:"a",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["Now it really has been a busy week for us and we have so much to tell you about. Here's a run down on improvements to the engine and what happened behind the scenes at ",(0,s.jsx)(t.a,{href:"https://playcanvas.com/",children:"PlayCanvas"})," this week."]}),"\n",(0,s.jsx)(t.h3,{id:"user-camera-view",children:"User Camera View"}),"\n",(0,s.jsx)(t.p,{children:"You can now view your scene from any Entity that has a camera component in your scene. Either right-click in the 3D view and select the camera you want from there, or alternatively do it from this new combo box (below). You can also move the selected camera wherever you want using the normal camera controls in the Designer."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(22071).A+"",children:(0,s.jsx)(t.img,{alt:"Camera Select",src:a(13429).A+"",width:"576",height:"385"})})}),"\n",(0,s.jsx)(t.h3,{id:"entity-context-menu",children:"Entity Context Menu"}),"\n",(0,s.jsx)(t.p,{children:"We added a new Entity context menu that appears when you right-click on an Entity in the 3D view. From there you can see all the parent Entities of the selected Entity up to the root and you can select a parent Entity easily. You can also see more options for Entities like Delete, Add Component, etc."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(41580).A+"",children:(0,s.jsx)(t.img,{alt:"Entity context",src:a(47582).A+"",width:"444",height:"339"})})}),"\n",(0,s.jsx)(t.h3,{id:"error-console",children:"Error Console"}),"\n",(0,s.jsx)(t.p,{children:"Whenever you try to launch a game from the Designer you will see errors in a new console, so you no longer need to wonder why the game is not loading.\xa0You can click on the problematic script and get transferred to the code editor at the offending line."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(9083).A+"",children:(0,s.jsx)(t.img,{alt:"error console",src:a(90177).A+"",width:"660",height:"439"})})}),"\n",(0,s.jsx)(t.h3,{id:"shadow-distance",children:"Shadow Distance"}),"\n",(0,s.jsx)(t.p,{children:"We added Shadow Distance in the Scene Settings, a value that controls that maximum distance from the camera from which shadows coming from Directional Lights are visible. Just toggle your scene settings to adjust it. This makes shadows from Directional Lights visible in the Designer as they no longer rely on the frustum of the camera."}),"\n",(0,s.jsx)(t.h3,{id:"events--oculus-rift-support",children:"Events & Oculus Rift Support"}),"\n",(0,s.jsxs)(t.p,{children:["We also showed our faces at a number of events this week. Dave showed off some of our work with the ",(0,s.jsx)(t.a,{href:"https://blog.playcanvas.com/virtual-reality-and-the-future-of-web-based-gaming/",children:"Oculus Rift"}),"\xa0at the Scenario Bar (as seen above) and we ran a ",(0,s.jsx)(t.a,{href:"http://swooop.playcanvas.com/",children:"SWOOOP"})," high score challenge at the ",(0,s.jsx)(t.a,{href:"https://www.idealondon.co.uk/",children:"IDEA London"})," summer party."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(62420).A+"",children:(0,s.jsx)(t.img,{alt:"VR night",src:a(55034).A+"",width:"800",height:"600"})})}),"\n",(0,s.jsx)(t.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(t.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(t.li,{children:["Like the\xa0",(0,s.jsx)(t.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(t.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(t.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},62420:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/VR-night-ca1a31c05cf489252ee31a2e028405ed.jpg"},22071:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/designer-camera-select-61e1540df6b4596e515d1556ef95f056.jpg"},41580:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/designer-entity-context-menu-a80f05b7fff5b68bd825312de113ccdf.jpg"},9083:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/error-console-1f1447e33eaee3ea33fc9632235dd378.jpg"},55034:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/VR-night-ca1a31c05cf489252ee31a2e028405ed.jpg"},13429:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/designer-camera-select-61e1540df6b4596e515d1556ef95f056.jpg"},47582:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/designer-entity-context-menu-a80f05b7fff5b68bd825312de113ccdf.jpg"},90177:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/error-console-1f1447e33eaee3ea33fc9632235dd378.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>r});var n=a(96540);const s={},o=n.createContext(s);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:t},e.children)}},67952:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-200614","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-20-playcanvas-update-200614.md","source":"@site/blog/2014-06-20-playcanvas-update-200614.md","title":"PlayCanvas Update 20/06/14","description":"Now it really has been a busy week for us and we have so much to tell you about. Here\'s a run down on improvements to the engine and what happened behind the scenes at PlayCanvas this week.","date":"2014-06-20T00:00:00.000Z","tags":[],"readingTime":1.835,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-200614","title":"PlayCanvas Update 20/06/14"},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Vaios Kalpias-Illias","permalink":"/meet-the-playcanvas-team-vaios-kalpias-illias"},"nextItem":{"title":"Virtual Reality and the future of Web Based Gaming","permalink":"/virtual-reality-and-the-future-of-web-based-gaming"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[85572],{40706:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>n,toc:()=>c});var n=a(67952),s=a(74848),o=a(28453);const i={authors:"christy",slug:"playcanvas-update-200614",title:"PlayCanvas Update 20/06/14"},r=void 0,l={authorsImageUrls:[void 0]},c=[{value:"User Camera View",id:"user-camera-view",level:3},{value:"Entity Context Menu",id:"entity-context-menu",level:3},{value:"Error Console",id:"error-console",level:3},{value:"Shadow Distance",id:"shadow-distance",level:3},{value:"Events & Oculus Rift Support",id:"events--oculus-rift-support",level:3},{value:"Stay In The Loop",id:"stay-in-the-loop",level:3}];function h(e){const t={a:"a",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["Now it really has been a busy week for us and we have so much to tell you about. Here's a run down on improvements to the engine and what happened behind the scenes at ",(0,s.jsx)(t.a,{href:"https://playcanvas.com/",children:"PlayCanvas"})," this week."]}),"\n",(0,s.jsx)(t.h3,{id:"user-camera-view",children:"User Camera View"}),"\n",(0,s.jsx)(t.p,{children:"You can now view your scene from any Entity that has a camera component in your scene. Either right-click in the 3D view and select the camera you want from there, or alternatively do it from this new combo box (below). You can also move the selected camera wherever you want using the normal camera controls in the Designer."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(22071).A+"",children:(0,s.jsx)(t.img,{alt:"Camera Select",src:a(13429).A+"",width:"576",height:"385"})})}),"\n",(0,s.jsx)(t.h3,{id:"entity-context-menu",children:"Entity Context Menu"}),"\n",(0,s.jsx)(t.p,{children:"We added a new Entity context menu that appears when you right-click on an Entity in the 3D view. From there you can see all the parent Entities of the selected Entity up to the root and you can select a parent Entity easily. You can also see more options for Entities like Delete, Add Component, etc."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(41580).A+"",children:(0,s.jsx)(t.img,{alt:"Entity context",src:a(47582).A+"",width:"444",height:"339"})})}),"\n",(0,s.jsx)(t.h3,{id:"error-console",children:"Error Console"}),"\n",(0,s.jsx)(t.p,{children:"Whenever you try to launch a game from the Designer you will see errors in a new console, so you no longer need to wonder why the game is not loading.\xa0You can click on the problematic script and get transferred to the code editor at the offending line."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(9083).A+"",children:(0,s.jsx)(t.img,{alt:"error console",src:a(90177).A+"",width:"660",height:"439"})})}),"\n",(0,s.jsx)(t.h3,{id:"shadow-distance",children:"Shadow Distance"}),"\n",(0,s.jsx)(t.p,{children:"We added Shadow Distance in the Scene Settings, a value that controls that maximum distance from the camera from which shadows coming from Directional Lights are visible. Just toggle your scene settings to adjust it. This makes shadows from Directional Lights visible in the Designer as they no longer rely on the frustum of the camera."}),"\n",(0,s.jsx)(t.h3,{id:"events--oculus-rift-support",children:"Events & Oculus Rift Support"}),"\n",(0,s.jsxs)(t.p,{children:["We also showed our faces at a number of events this week. Dave showed off some of our work with the ",(0,s.jsx)(t.a,{href:"https://blog.playcanvas.com/virtual-reality-and-the-future-of-web-based-gaming/",children:"Oculus Rift"}),"\xa0at the Scenario Bar (as seen above) and we ran a ",(0,s.jsx)(t.a,{href:"http://swooop.playcanvas.com/",children:"SWOOOP"})," high score challenge at the ",(0,s.jsx)(t.a,{href:"https://www.idealondon.co.uk/",children:"IDEA London"})," summer party."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(62420).A+"",children:(0,s.jsx)(t.img,{alt:"VR night",src:a(55034).A+"",width:"800",height:"600"})})}),"\n",(0,s.jsx)(t.h3,{id:"stay-in-the-loop",children:"Stay In The Loop"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Follow us on Twitter,\xa0",(0,s.jsx)(t.a,{href:"https://twitter.com/playcanvas",children:"@playcanvas"}),", for updates on PlayCanvas."]}),"\n",(0,s.jsxs)(t.li,{children:["Like the\xa0",(0,s.jsx)(t.a,{href:"https://facebook.com/playcanvas",children:"PlayCanvas Facebook"}),"\xa0page for our whimsical views on the game dev scene."]}),"\n",(0,s.jsxs)(t.li,{children:["Join and start discussions on the\xa0",(0,s.jsx)(t.a,{href:"https://forum.playcanvas.com/",children:"PlayCanvas Forum"}),"."]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},62420:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/VR-night-ca1a31c05cf489252ee31a2e028405ed.jpg"},22071:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/designer-camera-select-61e1540df6b4596e515d1556ef95f056.jpg"},41580:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/designer-entity-context-menu-a80f05b7fff5b68bd825312de113ccdf.jpg"},9083:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/files/error-console-1f1447e33eaee3ea33fc9632235dd378.jpg"},55034:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/VR-night-ca1a31c05cf489252ee31a2e028405ed.jpg"},13429:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/designer-camera-select-61e1540df6b4596e515d1556ef95f056.jpg"},47582:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/designer-entity-context-menu-a80f05b7fff5b68bd825312de113ccdf.jpg"},90177:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/error-console-1f1447e33eaee3ea33fc9632235dd378.jpg"},28453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>r});var n=a(96540);const s={},o=n.createContext(s);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:t},e.children)}},67952:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-200614","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-06-20-playcanvas-update-200614.md","source":"@site/blog/2014-06-20-playcanvas-update-200614.md","title":"PlayCanvas Update 20/06/14","description":"Now it really has been a busy week for us and we have so much to tell you about. Here\'s a run down on improvements to the engine and what happened behind the scenes at PlayCanvas this week.","date":"2014-06-20T00:00:00.000Z","tags":[],"readingTime":1.835,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-update-200614","title":"PlayCanvas Update 20/06/14"},"unlisted":false,"prevItem":{"title":"Meet the PlayCanvas team: Vaios Kalpias-Illias","permalink":"/meet-the-playcanvas-team-vaios-kalpias-illias"},"nextItem":{"title":"Virtual Reality and the future of Web Based Gaming","permalink":"/virtual-reality-and-the-future-of-web-based-gaming"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/a5fe23b6.01d8b938.js b/assets/js/a5fe23b6.7d7e9e31.js
similarity index 93%
rename from assets/js/a5fe23b6.01d8b938.js
rename to assets/js/a5fe23b6.7d7e9e31.js
index d5447bcd0..aa1a362b6 100644
--- a/assets/js/a5fe23b6.01d8b938.js
+++ b/assets/js/a5fe23b6.7d7e9e31.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[22307],{42366:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>f});var o=n(55673),s=n(74848),a=n(28453);const r={authors:"christy",published:!1,slug:"playcanvas-referrals-just-a-little-thank-you",title:"PlayCanvas Referrals: Just a little Thank You"},i=void 0,l={authorsImageUrls:[void 0]},f=[{value:"How Does It Work?",id:"how-does-it-work",level:3},{value:"Finding Your Referral Link",id:"finding-your-referral-link",level:3}];function h(e){const t={a:"a",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"PlayCanvas Community"})," is growing all the time and we know that some of that growth is down to your hard work in ",(0,s.jsx)(t.strong,{children:"promoting"})," the engine."]}),"\n",(0,s.jsxs)(t.p,{children:["Last month we introduced our ",(0,s.jsx)(t.strong,{children:"DevLog"})," to help strengthen the PlayCanvas Community and this month the\xa0",(0,s.jsx)(t.strong,{children:"Referrals feature"}),"\xa0is our way of saying thank you for ",(0,s.jsx)(t.strong,{children:"using"})," and\xa0",(0,s.jsx)(t.strong,{children:"sharing"}),"\xa0our engine. PlayCanvas simply wouldn't work without you, our Community."]}),"\n",(0,s.jsx)(t.h3,{id:"how-does-it-work",children:"How Does It Work?"}),"\n",(0,s.jsxs)(t.p,{children:["Simply ",(0,s.jsxs)(t.strong,{children:["share your ",(0,s.jsx)(t.a,{href:"https://playcanvas.com/account",children:"unique Referral link"})]})," where and when you please and if a\xa0user signs up to ",(0,s.jsx)(t.strong,{children:"PlayCanvas"})," using your link, you are ",(0,s.jsx)(t.strong,{children:"entitled to 5% of everything that they buy and sell on PlayCanvas over the period of 1 year"}),". The more people that sign up with the link that you\xa0shared, the more benefits you will receive."]}),"\n",(0,s.jsx)(t.p,{children:"The 5% you are entitled to is also based on the new users subscription fee."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(73850).A+"",children:(0,s.jsx)(t.img,{alt:"Screen Shot 2014-11-04 at 16.08.55",src:n(42824).A+"",width:"1274",height:"676"})})}),"\n",(0,s.jsx)(t.h3,{id:"finding-your-referral-link",children:"Finding Your Referral Link"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Method 1:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Hover over your ",(0,s.jsx)(t.strong,{children:"profile icon"})," (in the top right hand corner) while logged into PlayCanvas"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Select ",(0,s.jsx)(t.strong,{children:"Account"}),"\xa0from the drop down menu"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Find your Referral URL in the box next to ",(0,s.jsx)(t.strong,{children:"Referrals"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Method 2:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Click this giant button!"})}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{href:"https://playcanvas.com/account",children:(0,s.jsx)(t.img,{alt:"Screen Shot 2014-11-04 at 17.07.59",src:n(60256).A+"",width:"678",height:"141"})})})]})}function c(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},73850:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/files/Screen-Shot-2014-11-04-at-16.08.55-ea1ea8028e0233a0b609a86e56f0d44a.png"},42824:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/Screen-Shot-2014-11-04-at-16.08.55-ea1ea8028e0233a0b609a86e56f0d44a.png"},60256:(e,t,n)=>{n.d(t,{A:()=>o});const o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqYAAACNCAMAAABSUUhxAAAC91BMVEX+ki7+ki/+q1/+s27/ewD/ey//e0f/e0//e1//e2//e3f/e4f/e4//kwD/k0f/k0//k1//k3f/k4f/k4//k5f/oAD/oC//oEf/oE//oF//oG//oHf/oJf/oJ//oKf/pAD/pC//pEf/pE//pF//pHf/pIf/pI//pJf/pJ//pKf/rAD/rC//rEf/rE//rF//rG//rHf/rI//rJf/rKf/rK//tAD/tC//tEf/tE//tF//tG//tIf/tI//tJf/tJ//tK//tLf/uAD/uC//uEf/uF//uIf/uI//uJ//uKf/uL//wS//wUf/wU//wV//wW//wY//wZf/waf/wa//wbf/wb//wcf/xS//xUf/xU//xXf/xYf/xY//xZf/xZ//xaf/xb//xcf/xc//yUf/yU//yV//yYf/yZf/yZ//yaf/ybf/yc//zUf/zU//zW//zXf/zY//zZ//zaf/zbf/zc//zdf/0Uf/0U//0V//0W//0Xf/0Yf/0Y//0Zf/0Z//0af/0bf/0b//0cf/0c//0df/0d//1W//1Xf/1Zf/1Z//1a//1bf/1b//1cf/1c//1df/1d//2Xf/2Yf/2af/2a//2b//2c//2df/2d//2ef/3nf/3of/3o//3pf/3p//3qf/3q//3rf/3r//3sf/3s//3tf/3t//3uf/3u//4o//4pf/4p//4qf/4q//4rf/4r//4sf/4s//4tf/4t//4uf/4u//5o//5pf/5p//5qf/5q//5rf/5r//5sf/5s//5tf/5t//5uf/5u//5vf/6p//6qf/6q//6rf/6r//6s//6tf/6t//6uf/6u//6vf/7qf/7q//7rf/7s//7tf/7t//7uf/7u//7vf/7v//8q//8rf/8r//8sf/8s//8tf/8t//8uf/8u//8vf/8v//9r//9sf/9s//9tf/9t//9uf/9u//9vf/9v//+sf/+s//+tf/+t//+uf/+u//+vf/+v///9f//9///+f//+////f+7d7+mz/+tG/////u6fVlAAAM4ElEQVR4XuzSOQEAAAgEIPs39hmscQNkoC4ehDcFTdEUNEVT0BQ0RVPQFDRFU9AUTUFT0BRNe+fZpWNUhYEgAMNoxtZSXqvamqN4jncesfcKXsBebO3dc8Q0YhEQ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"},28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>i});var o=n(96540);const s={},a=o.createContext(s);function r(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(a.Provider,{value:t},e.children)}},55673:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-referrals-just-a-little-thank-you","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-11-04-playcanvas-referrals-just-a-little-thank-you.md","source":"@site/blog/2014-11-04-playcanvas-referrals-just-a-little-thank-you.md","title":"PlayCanvas Referrals: Just a little Thank You","description":"The PlayCanvas Community is growing all the time and we know that some of that growth is down to your hard work in promoting the engine.","date":"2014-11-04T00:00:00.000Z","tags":[],"readingTime":1,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","published":false,"slug":"playcanvas-referrals-just-a-little-thank-you","title":"PlayCanvas Referrals: Just a little Thank You"},"unlisted":false,"prevItem":{"title":"PLAYHACK November - Camera types","permalink":"/playhack-november-camera-types"},"nextItem":{"title":"PLAYHACK November - Adding Tank Controls","permalink":"/playhack-november-adding-tank-controls"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[22307],{42366:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>f});var o=n(55673),s=n(74848),a=n(28453);const r={authors:"christy",published:!1,slug:"playcanvas-referrals-just-a-little-thank-you",title:"PlayCanvas Referrals: Just a little Thank You"},i=void 0,l={authorsImageUrls:[void 0]},f=[{value:"How Does It Work?",id:"how-does-it-work",level:3},{value:"Finding Your Referral Link",id:"finding-your-referral-link",level:3}];function h(e){const t={a:"a",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"PlayCanvas Community"})," is growing all the time and we know that some of that growth is down to your hard work in ",(0,s.jsx)(t.strong,{children:"promoting"})," the engine."]}),"\n",(0,s.jsxs)(t.p,{children:["Last month we introduced our ",(0,s.jsx)(t.strong,{children:"DevLog"})," to help strengthen the PlayCanvas Community and this month the\xa0",(0,s.jsx)(t.strong,{children:"Referrals feature"}),"\xa0is our way of saying thank you for ",(0,s.jsx)(t.strong,{children:"using"})," and\xa0",(0,s.jsx)(t.strong,{children:"sharing"}),"\xa0our engine. PlayCanvas simply wouldn't work without you, our Community."]}),"\n",(0,s.jsx)(t.h3,{id:"how-does-it-work",children:"How Does It Work?"}),"\n",(0,s.jsxs)(t.p,{children:["Simply ",(0,s.jsxs)(t.strong,{children:["share your ",(0,s.jsx)(t.a,{href:"https://playcanvas.com/account",children:"unique Referral link"})]})," where and when you please and if a\xa0user signs up to ",(0,s.jsx)(t.strong,{children:"PlayCanvas"})," using your link, you are ",(0,s.jsx)(t.strong,{children:"entitled to 5% of everything that they buy and sell on PlayCanvas over the period of 1 year"}),". The more people that sign up with the link that you\xa0shared, the more benefits you will receive."]}),"\n",(0,s.jsx)(t.p,{children:"The 5% you are entitled to is also based on the new users subscription fee."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(73850).A+"",children:(0,s.jsx)(t.img,{alt:"Screen Shot 2014-11-04 at 16.08.55",src:n(42824).A+"",width:"1274",height:"676"})})}),"\n",(0,s.jsx)(t.h3,{id:"finding-your-referral-link",children:"Finding Your Referral Link"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Method 1:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Hover over your ",(0,s.jsx)(t.strong,{children:"profile icon"})," (in the top right hand corner) while logged into PlayCanvas"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Select ",(0,s.jsx)(t.strong,{children:"Account"}),"\xa0from the drop down menu"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Find your Referral URL in the box next to ",(0,s.jsx)(t.strong,{children:"Referrals"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Method 2:"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Click this giant button!"})}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{href:"https://playcanvas.com/account",children:(0,s.jsx)(t.img,{alt:"Screen Shot 2014-11-04 at 17.07.59",src:n(60256).A+"",width:"678",height:"141"})})})]})}function c(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},73850:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/files/Screen-Shot-2014-11-04-at-16.08.55-ea1ea8028e0233a0b609a86e56f0d44a.png"},42824:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/Screen-Shot-2014-11-04-at-16.08.55-ea1ea8028e0233a0b609a86e56f0d44a.png"},60256:(e,t,n)=>{n.d(t,{A:()=>o});const o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqYAAACNCAMAAABSUUhxAAAC91BMVEX+ki7+ki/+q1/+s27/ewD/ey//e0f/e0//e1//e2//e3f/e4f/e4//kwD/k0f/k0//k1//k3f/k4f/k4//k5f/oAD/oC//oEf/oE//oF//oG//oHf/oJf/oJ//oKf/pAD/pC//pEf/pE//pF//pHf/pIf/pI//pJf/pJ//pKf/rAD/rC//rEf/rE//rF//rG//rHf/rI//rJf/rKf/rK//tAD/tC//tEf/tE//tF//tG//tIf/tI//tJf/tJ//tK//tLf/uAD/uC//uEf/uF//uIf/uI//uJ//uKf/uL//wS//wUf/wU//wV//wW//wY//wZf/waf/wa//wbf/wb//wcf/xS//xUf/xU//xXf/xYf/xY//xZf/xZ//xaf/xb//xcf/xc//yUf/yU//yV//yYf/yZf/yZ//yaf/ybf/yc//zUf/zU//zW//zXf/zY//zZ//zaf/zbf/zc//zdf/0Uf/0U//0V//0W//0Xf/0Yf/0Y//0Zf/0Z//0af/0bf/0b//0cf/0c//0df/0d//1W//1Xf/1Zf/1Z//1a//1bf/1b//1cf/1c//1df/1d//2Xf/2Yf/2af/2a//2b//2c//2df/2d//2ef/3nf/3of/3o//3pf/3p//3qf/3q//3rf/3r//3sf/3s//3tf/3t//3uf/3u//4o//4pf/4p//4qf/4q//4rf/4r//4sf/4s//4tf/4t//4uf/4u//5o//5pf/5p//5qf/5q//5rf/5r//5sf/5s//5tf/5t//5uf/5u//5vf/6p//6qf/6q//6rf/6r//6s//6tf/6t//6uf/6u//6vf/7qf/7q//7rf/7s//7tf/7t//7uf/7u//7vf/7v//8q//8rf/8r//8sf/8s//8tf/8t//8uf/8u//8vf/8v//9r//9sf/9s//9tf/9t//9uf/9u//9vf/9v//+sf/+s//+tf/+t//+uf/+u//+vf/+v///9f//9///+f//+////f+7d7+mz/+tG/////u6fVlAAAM4ElEQVR4XuzSOQEAAAgEIPs39hmscQNkoC4ehDcFTdEUNEVT0BQ0RVPQFDRFU9AUTUFT0BRNe+fZpWNUhYEgAMNoxtZSXqvamqN4jncesfcKXsBebO3dc8Q0YhEQ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"},28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>i});var o=n(96540);const s={},a=o.createContext(s);function r(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(a.Provider,{value:t},e.children)}},55673:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-referrals-just-a-little-thank-you","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-11-04-playcanvas-referrals-just-a-little-thank-you.md","source":"@site/blog/2014-11-04-playcanvas-referrals-just-a-little-thank-you.md","title":"PlayCanvas Referrals: Just a little Thank You","description":"The PlayCanvas Community is growing all the time and we know that some of that growth is down to your hard work in promoting the engine.","date":"2014-11-04T00:00:00.000Z","tags":[],"readingTime":1,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","published":false,"slug":"playcanvas-referrals-just-a-little-thank-you","title":"PlayCanvas Referrals: Just a little Thank You"},"unlisted":false,"prevItem":{"title":"PLAYHACK November - Camera types","permalink":"/playhack-november-camera-types"},"nextItem":{"title":"PLAYHACK November - Adding Tank Controls","permalink":"/playhack-november-adding-tank-controls"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/ab5963d9.be8baef8.js b/assets/js/ab5963d9.305285a3.js
similarity index 59%
rename from assets/js/ab5963d9.be8baef8.js
rename to assets/js/ab5963d9.305285a3.js
index ced79337b..48ac1a93f 100644
--- a/assets/js/ab5963d9.be8baef8.js
+++ b/assets/js/ab5963d9.305285a3.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[39680],{17490:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>n,toc:()=>i});var n=t(55275),s=t(74848),o=t(28453);const r={authors:"adam",slug:"playcanvas-update-25714",title:"PlayCanvas Update 25/7/14"},l=void 0,p={authorsImageUrls:[void 0]},i=[];function c(e){const a={p:"p",...(0,o.R)(),...e.components};return(0,s.jsx)(a.p,{children:"Welcome back PlayCanvas fans.\xa0We have a few new developments, so here are the updates for this week."})}function d(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},28453:(e,a,t)=>{t.d(a,{R:()=>r,x:()=>l});var n=t(96540);const s={},o=n.createContext(s);function r(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(o.Provider,{value:a},e.children)}},55275:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-25714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-25-playcanvas-update-25714.md","source":"@site/blog/2014-07-25-playcanvas-update-25714.md","title":"PlayCanvas Update 25/7/14","description":"Welcome back PlayCanvas fans.\xa0We have a few new developments, so here are the updates for this week.","date":"2014-07-25T00:00:00.000Z","tags":[],"readingTime":1.52,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGHCOiKWo7s_A/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1622574917949?e=1730332800&v=beta&t=5uT_foApGCHnZNHhvyQUvZS1521v2FB5ub571XxO_6s","key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-25714","title":"PlayCanvas Update 25/7/14"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 04/08/14","permalink":"/playcanvas-update-040814"},"nextItem":{"title":"SWOOOP @ LadyCADE","permalink":"/swooop-ladycade"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[39680],{17490:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>p,contentTitle:()=>l,default:()=>i,frontMatter:()=>r,metadata:()=>n,toc:()=>c});var n=t(55275),s=t(74848),o=t(28453);const r={authors:"adam",slug:"playcanvas-update-25714",title:"PlayCanvas Update 25/7/14"},l=void 0,p={authorsImageUrls:[void 0]},c=[];function d(e){const a={p:"p",...(0,o.R)(),...e.components};return(0,s.jsx)(a.p,{children:"Welcome back PlayCanvas fans.\xa0We have a few new developments, so here are the updates for this week."})}function i(e={}){const{wrapper:a}={...(0,o.R)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},28453:(e,a,t)=>{t.d(a,{R:()=>r,x:()=>l});var n=t(96540);const s={},o=n.createContext(s);function r(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(o.Provider,{value:a},e.children)}},55275:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-update-25714","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-25-playcanvas-update-25714.md","source":"@site/blog/2014-07-25-playcanvas-update-25714.md","title":"PlayCanvas Update 25/7/14","description":"Welcome back PlayCanvas fans.\xa0We have a few new developments, so here are the updates for this week.","date":"2014-07-25T00:00:00.000Z","tags":[],"readingTime":1.52,"hasTruncateMarker":true,"authors":[{"name":"Adam Razzak","title":"Intern","page":{"permalink":"/authors/adam"},"socials":{"linkedin":"https://www.linkedin.com/in/adam-razzak/"},"key":"adam"}],"frontMatter":{"authors":"adam","slug":"playcanvas-update-25714","title":"PlayCanvas Update 25/7/14"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 04/08/14","permalink":"/playcanvas-update-040814"},"nextItem":{"title":"SWOOOP @ LadyCADE","permalink":"/swooop-ladycade"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/af4da9bd.135f62cc.js b/assets/js/af4da9bd.5b0a770a.js
similarity index 65%
rename from assets/js/af4da9bd.135f62cc.js
rename to assets/js/af4da9bd.5b0a770a.js
index f90ed4037..61ed979a2 100644
--- a/assets/js/af4da9bd.135f62cc.js
+++ b/assets/js/af4da9bd.5b0a770a.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[44302],{17233:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var a=t(52204),o=t(74848),s=t(28453);const i={authors:"christy",slug:"playcanvas-voted-number-1-webgl-engine-by-develop-magazine",title:"PlayCanvas Voted the Leading WebGL Engine"},r=void 0,l={authorsImageUrls:[void 0]},d=[];function c(e){const n={a:"a",img:"img",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:(0,o.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(20771).A+"",children:(0,o.jsx)(n.img,{alt:"develop 1001-003",src:t(96341).A+"",width:"800",height:"523"})})}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsxs)(n.strong,{children:["Develop Magazine have voted PlayCanvas the leading\xa0WebGL Engine in their ",(0,o.jsx)(n.a,{href:"http://content.yudu.com/A2xcc7/Dev100TechList2014/resources/index.htm?referrerUrl=",children:"Develop 100"})," rank of top game development technology. Ranking 52nd out of 100 Development products and tools, our engine\xa0bested other great engines\xa0to top the WebGL podium."]})})]})}function p(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},20771:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/files/develop-1001-003-a8ddd82e2251e33063b0427b16d5fd03.jpg"},96341:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/develop-1001-003-a8ddd82e2251e33063b0427b16d5fd03.jpg"},28453:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>r});var a=t(96540);const o={},s=a.createContext(o);function i(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),a.createElement(s.Provider,{value:n},e.children)}},52204:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-voted-number-1-webgl-engine-by-develop-magazine","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-03-playcanvas-voted-number-1-webgl-engine-by-develop-magazine.md","source":"@site/blog/2014-07-03-playcanvas-voted-number-1-webgl-engine-by-develop-magazine.md","title":"PlayCanvas Voted the Leading WebGL Engine","description":"develop 1001-003","date":"2014-07-03T00:00:00.000Z","tags":[],"readingTime":1.015,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQFn6GYclP_OEg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1613509676962?e=1730332800&v=beta&t=0sYsgQcijA_JtsZ2TtzsWXtjQfF7zvN5pW3N0EeHBpc","key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-voted-number-1-webgl-engine-by-develop-magazine","title":"PlayCanvas Voted the Leading WebGL Engine"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 04/07/14","permalink":"/playcanvas-update-040714"},"nextItem":{"title":"Meet the PlayCanvas team: Kevin Rooney","permalink":"/meet-the-playcanvas-team-kevin-rooney"}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[44302],{17233:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var a=t(52204),o=t(74848),s=t(28453);const r={authors:"christy",slug:"playcanvas-voted-number-1-webgl-engine-by-develop-magazine",title:"PlayCanvas Voted the Leading WebGL Engine"},i=void 0,l={authorsImageUrls:[void 0]},d=[];function c(e){const n={a:"a",img:"img",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:(0,o.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(20771).A+"",children:(0,o.jsx)(n.img,{alt:"develop 1001-003",src:t(96341).A+"",width:"800",height:"523"})})}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsxs)(n.strong,{children:["Develop Magazine have voted PlayCanvas the leading\xa0WebGL Engine in their ",(0,o.jsx)(n.a,{href:"http://content.yudu.com/A2xcc7/Dev100TechList2014/resources/index.htm?referrerUrl=",children:"Develop 100"})," rank of top game development technology. Ranking 52nd out of 100 Development products and tools, our engine\xa0bested other great engines\xa0to top the WebGL podium."]})})]})}function p(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},20771:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/files/develop-1001-003-a8ddd82e2251e33063b0427b16d5fd03.jpg"},96341:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/develop-1001-003-a8ddd82e2251e33063b0427b16d5fd03.jpg"},28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>i});var a=t(96540);const o={},s=a.createContext(o);function r(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),a.createElement(s.Provider,{value:n},e.children)}},52204:e=>{e.exports=JSON.parse('{"permalink":"/playcanvas-voted-number-1-webgl-engine-by-develop-magazine","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2014-07-03-playcanvas-voted-number-1-webgl-engine-by-develop-magazine.md","source":"@site/blog/2014-07-03-playcanvas-voted-number-1-webgl-engine-by-develop-magazine.md","title":"PlayCanvas Voted the Leading WebGL Engine","description":"develop 1001-003","date":"2014-07-03T00:00:00.000Z","tags":[],"readingTime":1.015,"hasTruncateMarker":true,"authors":[{"name":"Christy O\'Connor","title":"Community Manager","page":{"permalink":"/authors/christy"},"socials":{"x":"https://x.com/christy_oconnor","linkedin":"https://www.linkedin.com/in/christy-o-connor-76aa2239/"},"key":"christy"}],"frontMatter":{"authors":"christy","slug":"playcanvas-voted-number-1-webgl-engine-by-develop-magazine","title":"PlayCanvas Voted the Leading WebGL Engine"},"unlisted":false,"prevItem":{"title":"PlayCanvas Update 04/07/14","permalink":"/playcanvas-update-040714"},"nextItem":{"title":"Meet the PlayCanvas team: Kevin Rooney","permalink":"/meet-the-playcanvas-team-kevin-rooney"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/b266de79.c6a8260e.js b/assets/js/b266de79.c6a8260e.js
deleted file mode 100644
index 2cb17e616..000000000
--- a/assets/js/b266de79.c6a8260e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[93518],{34369:e=>{e.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"playcanvas-engine-hits-2-0-0","metadata":{"permalink":"/playcanvas-engine-hits-2-0-0","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2024-08-22-playcanvas-engine-hits-2-0-0.md","source":"@site/blog/2024-08-22-playcanvas-engine-hits-2-0-0.md","title":"PlayCanvas Engine Hits 2.0.0","description":"Today marks a major milestone for the PlayCanvas Engine, the open-source JavaScript runtime that powers thousands of interactive graphical apps and tools on the web. We are bubbling with excitement to announce the release of version 2.0.0!","date":"2024-08-22T00:00:00.000Z","tags":[{"inline":true,"label":"engine","permalink":"/tags/engine"}],"readingTime":3.56,"hasTruncateMarker":true,"authors":[{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will"}],"frontMatter":{"authors":"will","slug":"playcanvas-engine-hits-2-0-0","title":"PlayCanvas Engine Hits 2.0.0","tags":["engine"]},"unlisted":false,"nextItem":{"title":"Create 3D Gaussian Splat Apps with the PlayCanvas Editor","permalink":"/create-3d-gaussian-splat-apps-with-the-playcanvas-editor"}},"content":"Today marks a major milestone for the PlayCanvas Engine, the [open-source](https://github.com/playcanvas/engine) JavaScript runtime that powers thousands of interactive graphical apps and tools on the web. We are bubbling with excitement to announce the release of version 2.0.0!\\n\\n\x3c!-- truncate --\x3e\\n\\nFor the full details, visit our GitHub:\\n\\n[**RELEASE NOTES**](https://github.com/playcanvas/engine/releases/tag/v2.0.0)\\n\\nIt\'s not every day we do a major version bump of the Engine. Let\'s take a walk down memory lane to see how we got here:\\n\\n* October 2010: Coding of the Engine begins!\\n* 24 October 2011: [Engine migrated to GitHub](https://github.com/playcanvas/engine/commit/e5bf014e738d5bfc92ece1d6c0f50ad71bf4dd90)\\n* 4 June 2014: [Engine goes open source](https://blog.playcanvas.com/playcanvas-goes-open-source/)\\n* 24 April 2018: [Engine hits 1.0.0](https://blog.playcanvas.com/playcanvas-engine-reaches-1-0-0/)\\n\\nBack in 2018, the Engine was bumped to 1.0.0 because we adhere to [semantic versioning](https://semver.org/) which dictates:\\n\\n> If your software is being used in production, it should probably already be 1.0.0. If you have a stable API on which users have come to depend, you should be 1.0.0. If you\u2019re worrying a lot about backward compatibility, you should probably already be 1.0.0.\\n\\nWith hindsight, the Engine should probably have reached 1.0.0 some years before. It had long been stable and was already being used heavily in production!\\n\\n### Why Bump to 2.0.0\\n\\nSemantic versioning says that you perform a major version bump when you introduce breaking changes. To say we go out of our way to avoid introducing breaking changes in an understatement. But since 1.0.0, we had done 73 minor versions along with countless patch releases. Along the way, the Engine accumulated a considerable amount of \\"cruft\\".\\n\\n:::info[cruft _noun_ `INFORMAL - COMPUTING`]\\n\\nbadly designed, unnecessarily complicated, or unwanted code or software.\\n\\n:::\\n\\nIt was getting to the point where parts of the codebase were restricting our ability to advance the Engine\'s capabilities. And so, we took to the decision to do a spring clean. \ud83e\uddf9 Here are some highlights of what we removed:\\n\\n* **WebGL 1 support.** This is the big one. Today, devices that support WebGL 1 but not WebGL 2 is less than 2% and this number is only going to get smaller. And supporting WebGL 1 was making it extraordinarily difficult to construct the foundations we needed in order to support WebGPU. Cheerio, WebGL 1 - it\'s been fun! \ud83d\udc4b\\n* **Scripts 1.0 support.** The very first `ScriptComponent` implementation was deprecated with the introduction of [Scripts 2.0](https://blog.playcanvas.com/playcanvas-scripts-2-0/) back in 2016. So after 8 years of deprecation, it\'s gone! We are now focused on delivering our new ESM-based scripting system, due soon.\\n* **AudioSourceComponent.** This component was the precursor to the Engine\'s [`SoundComponent`](https://api.playcanvas.com/classes/Engine.SoundComponent.html). `AudioSourceComponent` has been deprecated for many years so it\'s time for it to go.\\n* **...and several other public API symbols.** What we are left with is a cleaner, tighter codebase that can power us into the future!\\n\\n### What if my Project Breaks\\n\\nNever fear! Today\'s release is more relevant to \'Engine-only\' users who pull the engine from [NPM](https://www.npmjs.com/package/playcanvas). At a time of their choosing, these developers can upgrade to 2.0.0 and give it a try. The vast majority of projects will update without modification.\\n\\nEditor users will gain access to Engine 2.0.0 in the coming weeks. At that point, moving to 2.0.0 will be _opt in_ for existing projects. We plan to support the last Engine 1.x release in the Editor for at least a year after Engine 2 becomes available. This should be plenty of time for developers to migrate. New projects will automatically use 2.0.0. We will release more information about the transition for Editor users in the coming weeks.\\n\\nIn the meantime, we ask NPM users to try Engine 2.0.0 and give us your feedback as soon as you can. We hope you like it! Head over to the [Forum](https://forum.playcanvas.com/), [Discord](https://discord.gg/RSaMRzg) or [GitHub](https://github.com/playcanvas/engine) to have your say. :ear:\\n\\n### What\'s New\\n\\nThe 2.0.0 release isn\'t just about breaking changes! We have some exciting features to announce by way of some brand new Engine examples:\\n\\n![Engine 2 Examples](/img/engine2-examples.png)\\n\\nCheck \'em out:\\n\\n* [Custom Shaders: Cross Hatching](https://playcanvas.vercel.app/#/graphics/shader-hatch)\\n* [Custom Shaders: Used with Skinning and Instancing](https://playcanvas.vercel.app/#/graphics/instancing-gooch)\\n* [Screen Space Ambient Occlusion](https://playcanvas.vercel.app/#/graphics/ambient-occlusion)\\n* [Hardware Instancing](https://playcanvas.vercel.app/#/graphics/instancing-custom)\\n* [glTF Hardware Instancing Extension](https://playcanvas.vercel.app/#/graphics/instancing-glb)\\n\\n### Thanking the Open Source Community\\n\\nWe _could not_ have reached this point without the amazing open source community:\\n\\n![GitHub Contributors](/img/engine-contributors.svg)\\n\\nThank you for your incredible contributions. \ud83d\ude4f"},{"id":"create-3d-gaussian-splat-apps-with-the-playcanvas-editor","metadata":{"permalink":"/create-3d-gaussian-splat-apps-with-the-playcanvas-editor","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2024-06-05-create-3d-gaussian-splat-apps-with-the-playcanvas-editor.md","source":"@site/blog/2024-06-05-create-3d-gaussian-splat-apps-with-the-playcanvas-editor.md","title":"Create 3D Gaussian Splat Apps with the PlayCanvas Editor","description":"CLICK HERE to open in a new tab. Credits: Splats scanned at the V&A Museum. HDRI from Poly Haven.","date":"2024-06-05T00:00:00.000Z","tags":[{"inline":true,"label":"gaussian-splats","permalink":"/tags/gaussian-splats"},{"inline":true,"label":"supersplat","permalink":"/tags/supersplat"}],"readingTime":2.6,"hasTruncateMarker":true,"authors":[{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will"}],"frontMatter":{"authors":"will","slug":"create-3d-gaussian-splat-apps-with-the-playcanvas-editor","title":"Create 3D Gaussian Splat Apps with the PlayCanvas Editor","tags":["gaussian-splats","supersplat"]},"unlisted":false,"prevItem":{"title":"PlayCanvas Engine Hits 2.0.0","permalink":"/playcanvas-engine-hits-2-0-0"},"nextItem":{"title":"A Faster SuperSplat with PWA Support","permalink":"/a-faster-supersplat-with-pwa-support"}},"content":"import ReactPlayer from \'react-player\'\\n\\n
\\n \\n
\\n_[CLICK HERE](https://playcanv.as/e/p/cLkf99ZV/) to open in a new tab. Credits: Splats scanned at the [V&A Museum](https://www.vam.ac.uk/). HDRI from [Poly Haven](https://polyhaven.com/a/sepulchral_chapel_rotunda)._\\n\\nWe have big news for the 3D Gaussian Splat community - the PlayCanvas Editor now has fully integrated support for splats!\\nLearn how to quickly build stunning, interactive 3DGS applications today.\\n\\n\x3c!-- truncate --\x3e\\n\\n:::note[What you need]\\n\\n\ud83e\udd33 A smartphone \\n\ud83d\udcbb A computer with a web browser \\n\u23f1\ufe0f A small amount of time\\n\\n:::\\n\\nThe application above shows several splats assembled in a single application, with animation and post effects spicing up the visuals. Let\'s check out how it was built.\\n\\n### Step 1: Clean in SuperSplat \ud83e\uddf9\\n\\nAfter [capturing the statues](https://developer.playcanvas.com/user-manual/graphics/gaussian-splatting/#creating-splats) to PLY format, our first stop is [SuperSplat](https://playcanvas.com/supersplat/editor?load=https://raw.githubusercontent.com/willeastcott/assets/main/statues/narcissus.compressed.ply), the open source tool for editing and optimizing 3D Gaussian Splats. Here, in a little over a minute, we can isolate the statue from the background and align it with the origin:\\n\\n\\n\\n \\nOnce we are done, we can download the splat using our [compressed PLY format](https://blog.playcanvas.com/compressing-gaussian-splats). In this case, our downloaded PLY is **only 1.56MB**!\\n\\n### Step 2: Import into the Editor \ud83d\udea7\\n\\nNow that we have a clean, compressed PLY, we simply need to drop it into the Editor\'s Asset Panel. And from there, drag it into the viewport to add it to the scene. Let\'s do that (along with a cube map for a photographic backdrop):\\n\\n\\n\\n \\nThe PlayCanvas Editor is a powerful visual environment for building and publishing 3D scenes. You can:\\n\\n* Grab useful scripts (and other assets) from the Asset Store. Here, we import an Orbit Camera script.\\n* Create beautiful user interfaces, using either HTML or PlayCanvas\' built-in UI system.\\n* Add sound, physics, VR/AR support and much, much more.\\n\\n### Step 3: Add Animation and Post Effects \u2728\\n\\nWhat really makes the demo pop is the transitions that fade the statues in and out.\\n\\n\\n\\n \\nWith the Editor, you can customize the shader code that renders your splats to apply stunning animation effects. For the transition between statues, individual splats are transformed and recolored over time, while a full-screen bloom effect is ramped up and down.\\n\\n### Resources\\n\\nToday\'s release makes working with 3D Gaussian Splats both easy and fun! We\'ve shown you how to build a virtual gallery or museum but the possibilities are endless. With 3D Gaussian Splats in the PlayCanvas Editor, you can target many verticals: product visualization (furniture, clothing, consumer electronics), automotive, education, travel and so much more.\\n\\nTo get started, here is an useful list of resources:\\n\\n* [Statue Project](https://playcanvas.com/project/1224723/overview/3d-gaussian-splat-statues) - feel free to fork it, explore and experiment.\\n* [3D Gaussian Splatting](https://developer.playcanvas.com/user-manual/graphics/gaussian-splatting/) User Guide\\n* [SuperSplat](https://playcanvas.com/supersplat/editor) (don\'t forget to [install the PWA](https://blog.playcanvas.com/a-faster-supersplat-with-pwa-support#pwa-support))\\n\\n### Go Forth and Create\\n\\nWe hope you love today\'s update as much as we do! \u2764\ufe0f\\n\\nBut let us know what you think by heading over to the [forum](https://forum.playcanvas.com) or [ping us on X](https://x.com/playcanvas)!"},{"id":"a-faster-supersplat-with-pwa-support","metadata":{"permalink":"/a-faster-supersplat-with-pwa-support","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2024-05-22-a-faster-supersplat-with-pwa-support.md","source":"@site/blog/2024-05-22-a-faster-supersplat-with-pwa-support.md","title":"A Faster SuperSplat with PWA Support","description":"Today, we are announcing the latest release of SuperSplat, the open source tool for editing and optimizing 3D Gaussian Splats. If you don\'t have a PLY file to hand, here\'s an example!","date":"2024-05-22T00:00:00.000Z","tags":[{"inline":true,"label":"gaussian-splats","permalink":"/tags/gaussian-splats"},{"inline":true,"label":"supersplat","permalink":"/tags/supersplat"}],"readingTime":1.82,"hasTruncateMarker":true,"authors":[{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will"}],"frontMatter":{"authors":"will","slug":"a-faster-supersplat-with-pwa-support","title":"A Faster SuperSplat with PWA Support","tags":["gaussian-splats","supersplat"]},"unlisted":false,"prevItem":{"title":"Create 3D Gaussian Splat Apps with the PlayCanvas Editor","permalink":"/create-3d-gaussian-splat-apps-with-the-playcanvas-editor"},"nextItem":{"title":"Build WebGPU Apps Today with PlayCanvas","permalink":"/build-webgpu-apps-today-with-playcanvas"}},"content":"import ReactPlayer from \'react-player\'\\n\\nToday, we are announcing the latest release of [SuperSplat](https://playcanvas.com/supersplat/editor), the open source tool for editing and optimizing 3D Gaussian Splats. If you don\'t have a PLY file to hand, [here\'s an example](https://playcanvas.com/supersplat/editor?load=https://raw.githubusercontent.com/playcanvas/engine/main/examples/assets/splats/biker.ply)!\\n\\n![SuperSplat PWA](/img/supersplat-pwa-sculpture.png)\\n\\n\x3c!-- truncate --\x3e\\n\\n[Version 0.17.1](https://github.com/playcanvas/supersplat/releases/tag/v1.17.1) focuses on two key areas: performance and PWA support.\\n\\n## Performance Improvements\\n\\nSuperSplat is now *over 2x faster on the GPU*! \ud83c\udfc3\\n\\nCompare before and after (notice GPU time dropping from 32ms to 13.5ms for the bike scene):\\n\\n![SuperSplat PWA](/img/engine-splat-performance.webp)\\n\\nThis is thanks to the [v1.71.0 release](https://github.com/playcanvas/engine/releases/tag/v1.71.0) of the PlayCanvas Engine, which includes a dramatic overhaul of how splats are processed by the GPU. For the technical details, take a look at [this pull request](https://github.com/playcanvas/engine/pull/6357).\\n\\nThe result is that SuperSplat can now throw around millions of splats and still maintain a silky smooth frame rate. Try it for yourself!\\n\\n## PWA Support\\n\\nA Progressive Web App (PWA) is a web application that provides a native app-like experience, including the ability to install it on a user\'s home screen or desktop.\\n\\nFrom today, SuperSplat is shipping with PWA support! \ud83c\udf89\\n\\n\\n\\n \\nTo install SuperSplat as a PWA:\\n\\n1. Visit [https://playcanvas.com/supersplat/editor](https://playcanvas.com/supersplat/editor).\\n2. Hit the `Install SuperSplat` button in the address bar.\\n\\n:::tip\\n\\nFor your convenience, pin SuperSplat to the Taskbar (Windows) or add it do the Dock (macOS).\\n\\n:::\\n\\n### PLY File Association\\n\\nWith SuperSplat installed as a PWA, your operating system can now open launch PLY files directly into the tool. Simply right-click on a PLY file and select SuperSplat to open it.\\n\\n\\n\\n \\nYou can also set SuperSplat as the default tool to open your PLYs. Then, you can simply double-click a PLY file to open it instantly in SuperSplat!\\n\\n## Your Feedback Matters\\n\\nWe hope you love today\'s update! \u2764\ufe0f\\n\\nThe SuperSplat community has grown a lot in recent weeks and we want to get your feedback. What other features would you like the PWA to get? Are you still experiencing any performance problems? What is still missing from SuperSplat? Let us know by heading over to the [forum](https://forum.playcanvas.com) or [ping us on X](https://x.com/playcanvas)!"},{"id":"build-webgpu-apps-today-with-playcanvas","metadata":{"permalink":"/build-webgpu-apps-today-with-playcanvas","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2024-04-18-build-webgpu-apps-today-with-playcanvas.md","source":"@site/blog/2024-04-18-build-webgpu-apps-today-with-playcanvas.md","title":"Build WebGPU Apps Today with PlayCanvas","description":"It\'s here! \ud83e\udd73 Today, we\'re excited to announce that WebGPU support has officially arrived in the PlayCanvas Editor.","date":"2024-04-18T00:00:00.000Z","tags":[{"inline":true,"label":"webgpu","permalink":"/tags/webgpu"},{"inline":true,"label":"graphics","permalink":"/tags/graphics"},{"inline":true,"label":"editor","permalink":"/tags/editor"}],"readingTime":2.105,"hasTruncateMarker":true,"authors":[{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will"}],"frontMatter":{"authors":"will","slug":"build-webgpu-apps-today-with-playcanvas","title":"Build WebGPU Apps Today with PlayCanvas","tags":["webgpu","graphics","editor"]},"unlisted":false,"prevItem":{"title":"A Faster SuperSplat with PWA Support","permalink":"/a-faster-supersplat-with-pwa-support"},"nextItem":{"title":"Using Visual Studio Code with PlayCanvas","permalink":"/using-visual-studio-code-with-playcanvas"}},"content":"It\'s here! \ud83e\udd73 Today, we\'re excited to announce that WebGPU support has officially arrived in the PlayCanvas Editor.\\n\\n![Editor with WebGPU Scene](/img/editor-webgpu.png)\\n\\n\x3c!-- truncate --\x3e\\n\\n## WebGPU on the Rise\\n\\nSince its inception back in 2010, PlayCanvas has been layered on top of WebGL. In 2017, we were proud to launch support for [WebGL 2.0](https://blog.playcanvas.com/mozilla-launches-webgl-2-with-playcanvas/) in partnership with our friends at Mozilla. April 2023 marked the beginning of a new era for web graphics when Google enabled WebGPU by default in Chrome 113. Since then, WebGPU adoption has exploded and today, [Web3D Survey](https://web3dsurvey.com/webgpu) reports that **62.19% of end users can now run WebGPU**. With [Firefox and Safari due to launch their WebGPU support](https://caniuse.com/webgpu) in the not-too-distant future, expect this number to rise dramatically in 2024.\\n\\n## Why WebGPU Matters\\n\\nIf you enable WebGPU for your PlayCanvas project, you may not notice much difference to begin with. In fact, we have put a great deal of effort into ensuring your WebGL projects look identical under WebGPU. But over time, there is are a great deal of opportunities to achieve performance improvements due to WebGPU\'s reduced driver overhead.\\n\\nAnother key feature unique to WebGPU is support for Compute Shaders which allow for general computation on the GPU. Support for Compute Shaders landed in [Engine v1.70.0](https://github.com/playcanvas/engine/releases/tag/v1.70.0). Here you can see Computer Shaders in action simulating 1 million particles on the GPU:\\n\\n
\\n \\n
\\n\\n[Click here](https://playcanvas.github.io/#/compute/particles) to run it for yourself in a WebGPU-enabled browser (i.e. Chrome or Edge).\\n\\nIn short, WebGPU represents the future for PlayCanvas and you can expect some incredible advances in performance and functionality over the coming months.\\n\\n## Getting Started with WebGPU\\n\\nWebGPU support in PlayCanvas is still considered \'Beta\'. There are still some unimplemented features (for example, the run-time lightmapper is still not supported). Therefore, you have to currently \'opt in\' to WebGPU support. To do this, open your Project\'s Settings in the Inspector and expand the `RENDERING` section. Then update `Graphics Devices` to include `WebGPU (beta)`.\\n\\n![Editor with WebGPU Scene](/img/editor-settings-webgpu.png)\\n\\nOnce we are satisfied WebGPU support has matured enough, it will become the default.\\n\\n## Your Feedback is Important\\n\\nSince WebGPU support is new, we rely on the community for feedback. What works and what doesn\'t? Please [submit an issue](https://github.com/playcanvas/editor/issues) if you discover any problems or kick off a new thread on the [forum](https://forum.playcanvas.com/) if you want to discuss WebGPU support in more detail. We want to hear what your opinions! \ud83d\udc42"},{"id":"using-visual-studio-code-with-playcanvas","metadata":{"permalink":"/using-visual-studio-code-with-playcanvas","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2024-04-15-using-visual-studio-code-with-playcanvas.md","source":"@site/blog/2024-04-15-using-visual-studio-code-with-playcanvas.md","title":"Using Visual Studio Code with PlayCanvas","description":"Visual Studio Code is massively popular. In the Stack Overflow 2023 Developer Survey, Visual Studio Code was ranked the most popular developer environment tool among 86,544 respondents, with 73.71% reporting that they use it.","date":"2024-04-15T00:00:00.000Z","tags":[{"inline":true,"label":"javascript","permalink":"/tags/javascript"},{"inline":true,"label":"open-source","permalink":"/tags/open-source"},{"inline":true,"label":"scripting","permalink":"/tags/scripting"},{"inline":true,"label":"workflow","permalink":"/tags/workflow"}],"readingTime":1.325,"hasTruncateMarker":true,"authors":[{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will"}],"frontMatter":{"authors":"will","slug":"using-visual-studio-code-with-playcanvas","title":"Using Visual Studio Code with PlayCanvas","tags":["javascript","open-source","scripting","workflow"]},"unlisted":false,"prevItem":{"title":"Build WebGPU Apps Today with PlayCanvas","permalink":"/build-webgpu-apps-today-with-playcanvas"},"nextItem":{"title":"Massive Upgrade for the PlayCanvas Developer Site","permalink":"/massive-upgrade-for-the-playcanvas-developer-site"}},"content":"[Visual Studio Code](https://code.visualstudio.com/) is massively popular. In the Stack Overflow 2023 Developer Survey, Visual Studio Code was ranked the most popular developer environment tool among 86,544 respondents, with **73.71%** reporting that they use it.\\n\\nAny PlayCanvas developer building directly on top of the Engine will very likely opt to use VS Code. But if you use the PlayCanvas Editor, you will normally rely on the built-in, browser-based Code Editor. Today, we\'re excited to give you another option by launching an open-source **Visual Studio Code Extension for PlayCanvas**.\\n\\n![VS Code Extension](/img/vscode-extension.webp)\\n\\n\x3c!-- truncate --\x3e\\n\\n## Benefits\\n\\nThe PlayCanvas Code Editor is actually built on the [Monaco Editor](https://github.com/microsoft/monaco-editor), the beating heart of VS Code. So why use VS Code instead of the PlayCanvas Code Editor?\\n\\n* [GitHub Copilot](https://github.com/features/copilot) - leverage AI to help you write PlayCanvas code faster.\\n* Powerful IntelliSense tools (code completion, parameter info, quick info, and member lists).\\n* Leverage a huge library of other extensions to accelerate your development.\\n\\n## We \u2764\ufe0f Open Source\\n\\nAs you might expect, we have open sourced the VS Code extension under a liberal MIT license!\\n\\n* [VS Code Extension on GitHub](https://github.com/playcanvas/vscode-extension)\\n\\nSo if you find a bug or have a suggestion, please do [log an issue](https://github.com/playcanvas/vscode-extension/issues). And for the more adventurous, consider making a code contribution!\\n\\nWe want you to feel empowered to make these tools your own. Let\'s make them awesome together! \ud83d\ude4c\\n\\n## Get Started Now\\n\\nIf this all sounds great to you, why not give it a try? Head over to the User Manual for instructions on how to get started:\\n\\n[READ THE DOCS](https://developer.playcanvas.com/user-manual/scripting/vscode-extension/)"},{"id":"massive-upgrade-for-the-playcanvas-developer-site","metadata":{"permalink":"/massive-upgrade-for-the-playcanvas-developer-site","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2024-02-08-massive-upgrade-for-playcanvas-developer-site.md","source":"@site/blog/2024-02-08-massive-upgrade-for-playcanvas-developer-site.md","title":"Massive Upgrade for the PlayCanvas Developer Site","description":"Today, we are excited to announce the brand new PlayCanvas Developer Site and API Reference Manual!","date":"2024-02-08T00:00:00.000Z","tags":[{"inline":true,"label":"documentation","permalink":"/tags/documentation"},{"inline":true,"label":"tutorial","permalink":"/tags/tutorial"},{"inline":true,"label":"open-source","permalink":"/tags/open-source"}],"readingTime":3.435,"hasTruncateMarker":true,"authors":[{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will"}],"frontMatter":{"authors":"will","slug":"massive-upgrade-for-the-playcanvas-developer-site","title":"Massive Upgrade for the PlayCanvas Developer Site","tags":["documentation","tutorial","open-source"]},"unlisted":false,"prevItem":{"title":"Using Visual Studio Code with PlayCanvas","permalink":"/using-visual-studio-code-with-playcanvas"},"nextItem":{"title":"Compressing Gaussian Splats","permalink":"/compressing-gaussian-splats"}},"content":"Today, we are excited to announce the brand new [PlayCanvas Developer Site](https://developer.playcanvas.com/) and [API Reference Manual](https://api.playcanvas.com/)!\\n\\n## Developer Site\\n\\nLet\'s start by taking a look at the new Developer Site, home of the PlayCanvas User Manual and Tutorials.\\n\\n![Developer Site Landing Page](/img/developer-site-landing-page.png)\\n\\n\x3c!-- truncate --\x3e\\n\\n### Migrating from Metalsmith to Docusaurus\\n\\nSince PlayCanvas was born in 2011, the basic look of the Developer Site has changed little. The content was written in Markdown and converted to a static HTML site using a tool called [Metalsmith](https://metalsmith.io/). Customizing the site to our needs meant we had to write many Metalsmith plugins (for localization, navigation and more) and a lot of HTML and CSS to style the pages as we wanted.\\n\\n13 years later, the world of static site generators has moved on with lots of exciting new options! We evaluated [Docusaurus](https://docusaurus.io/) and decided to migrate over to it.\\n\\n### What\'s New\\n\\nSo what made Docusaurus so compelling? First up, the migration was going to be straightforward because, like Metalsmith, Docusaurus consumes Markdown and outputs a static site. And much of the customization we did for Metalsmith is supplied \'out-of-the-box\' with Docusaurus. So that\'s all great. But the new site comes with lots of cool new features we known you\'re going to love:\\n\\n#### \ud83d\udd0d Powerful Search\\n\\nThe site now integrates [Algolia](https://www.algolia.com/) for advanced searching of the documentation.\\n\\n![Developer Site Search](/img/developer-site-search.png)\\n\\nThis is a quantum leap over what came before. Try it (by pressing `CTRL + K`) - you\'ll be amazed. \ud83e\udd2f\\n\\n#### \ud83c\udf12 Light and Dark Modes\\n\\nEasily switch between light and dark themes (by clicking on the sun/moon icon top-right).\\n\\n![Developer Site Light and Dark Modes](/img/developer-site-light-dark.png)\\n\\n#### \ud83c\udf0f Language Selection\\n\\nSwitch language from the nav-bar. At the moment, we\'re shipping with Japanese translations.\\n\\n![Developer Site Localization](/img/developer-site-localization.png)\\n\\n#### \ud83d\udc69\u200d\ud83d\udcbb Edit on GitHub\\n\\nAs you might expect, [the Developer Site is Open Source (MIT)](https://github.com/playcanvas/developer.playcanvas.com). Every page now has a handy link to the content on GitHub. Spot a mistake? Now can you fix it yourself and improve the docs for the community!\\n\\n#### \ud83e\udded Easier Navigation\\n\\nAt the top of each page, you\'ll find \'Sidebar Breadcrumbs\' which allow you to click back up the page hierarchy.\\n\\n![Developer Site Breadcrumbs](/img/developer-site-breadcrumbs.png)\\n\\nTo the right of each page, you\'ll find a table of contents which can be a big help, especially for long pages.\\n\\n![Developer Site Table of Contents](/img/developer-site-toc.png)\\n\\nAnd at the bottom of each page, you\'ll find \'Previous\' and \'Next\' links that allow you to read through the User Manual sequentially.\\n\\n![Developer Site Previous and Next Links](/img/developer-site-previous-next.png)\\n\\n## API Reference\\n\\nWe are not just launching a new Developer Site today. We are also launching our brand new, upgraded [API Reference Manual](https://api.playcanvas.com/)!\\n\\n![API Reference Site](/img/api-reference-site.png)\\n\\n### Migrating from JSDoc to TypeDoc\\n\\nSince the start, we have relied on [JSDoc](https://jsdoc.app/) to generate our API reference manual. But since then, we have seen the introduction of [TypeDoc](https://typedoc.org/) which offers some major advantages over JSDoc.\\n\\n#### \ud83c\udfa8 High Quality Default Theme\\n\\nWhile it\'s not perfect, the default TypeDoc theme is gorgeous and a big improvement over our custom JSDoc theme. It provides:\\n\\n* Light and dark modes (like the main developer site)\\n* Links to the source code on GitHub\\n* Grouping of API into related categories\\n* Powerful search (press `/` to activate it)\\n* ...and much more!\\n\\nIt\'s a great foundation for us to begin with and we can customize the default theme to our requirements as needed.\\n\\n#### \ud83d\udd17 Easy Combining of APIs\\n\\nDid you know that PlayCanvas develops frameworks and libraries other than the PlayCanvas Engine? There\'s [PCUI](https://github.com/playcanvas/pcui), a front-end framework for web-based tools. There\'s the [PlayCanvas Editor API](https://github.com/playcanvas/editor-api) for automating the interface. And more! The new API reference collects all of the PlayCanvas APIs into a single manual.\\n\\n![API Reference Site APIs](/img/api-reference-site-apis.png)\\n\\n## Open Source FTW\\n\\nEverything we are announcing today is 100% open source.\\n\\n* [Developer Site on GitHub](https://github.com/playcanvas/developer.playcanvas.com)\\n* [API Reference Site on GitHub](https://github.com/playcanvas/api-reference)\\n\\nWe want to empower to community to get involved and make PlayCanvas better for everybody. It\'s never been easier to submit your first pull request on GitHub. So why wait - get started today! \u2764\ufe0f"},{"id":"compressing-gaussian-splats","metadata":{"permalink":"/compressing-gaussian-splats","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-12-05-compressing-gaussian-splats.md","source":"@site/blog/2023-12-05-compressing-gaussian-splats.md","title":"Compressing Gaussian Splats","description":"Introduction","date":"2023-12-05T00:00:00.000Z","tags":[{"inline":true,"label":"gaussian-splats","permalink":"/tags/gaussian-splats"},{"inline":true,"label":"compression","permalink":"/tags/compression"},{"inline":true,"label":"supersplat","permalink":"/tags/supersplat"}],"readingTime":3.625,"hasTruncateMarker":true,"authors":[{"name":"Donovan Hutchence","title":"Staff Software Engineer","page":{"permalink":"/authors/donovan"},"socials":{"x":"https://x.com/slimbuck7","linkedin":"https://www.linkedin.com/in/dhutchence/","github":"https://github.com/slimbuck"},"imageURL":"https://github.com/slimbuck.png","key":"donovan"}],"frontMatter":{"authors":"donovan","slug":"compressing-gaussian-splats","title":"Compressing Gaussian Splats","tags":["gaussian-splats","compression","supersplat"]},"unlisted":false,"prevItem":{"title":"Massive Upgrade for the PlayCanvas Developer Site","permalink":"/massive-upgrade-for-the-playcanvas-developer-site"},"nextItem":{"title":"Boost Your Efficiency: Editor gets Support for AVIF and WebP","permalink":"/avif-webp-land-in-editor"}},"content":"### Introduction\\n\\n[**3D Gaussian Splatting**](https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/) is a new method for digitizing and rendering real world objects. With gaussian splatting, you can digitize a scene from a few photos using services like [Luma Labs](https://lumalabs.ai/) or [Polycam](https://poly.cam/). These services take the set of photos and generate a 3d Gaussian Splat scene in [PLY format]().\\n\\nFor example, this is a Gaussian Splat scene rendered in PlayCanvas.\\n
\\n \\n
\\n\\n\x3c!-- truncate --\x3e\\n\\n### What is a Splat?\\n\\nGaussian Splat Scenes are not made up of polygons and textures. Instead, they are made up of many (up to millions) of individual, unconnected blobs called _splats_. A splat is just a particle in space with size, orientation, color and opacity.\\n\\nBelow you can see a single brown splat selected. The splat bounding box shows its orientation and size:\\n\\n![Splat Example](/img/splat-example.gif)\\n\\nThe gaussian part of the name comes from the shape of splat itself: the splat opacity has a gaussian falloff from its center to its edge.\\n\\n### Engine Support\\n\\nThe PlayCanvas team has been adding support to the engine for loading and rendering Gaussian Splat PLY files:\\n\\n[![Engine Example](/img/gaussian-splat-example.gif)](https://playcanvas.github.io/#/loaders/splat-many)\\n\\nSince the resulting files are often messy and require cleaning, we released [SuperSplat](https://playcanvas.com/super-splat), a tool for cleaning and processing gaussian splat PLY files:\\n\\n[![SuperSplat Example](/img/super-splat-example.gif)](https://playcanvas.com/super-splat?load=https://code.playcanvas.com/viewer/guitar-cleaned.ply)\\n\\n### PLY Format\\n\\nHowever, the default gaussian splat PLY format as exported by training tools is large.\\n\\nThis is because the uncompressed format stores a large amount of data _per splat_:\\n\\n| Name | Data Format | Bytes |\\n| --------------------------- | ----------- | ----- |\\n| Position | 3 x float | 12 |\\n| Orientation | 4 x float | 16 |\\n| Scale | 3 x float | 12 |\\n| Spherical harmonics / color | 48 x float | 192 |\\n| Total | | 232 |\\n\\nFor example, the original `guitar.ply` scene file takes **132.8 MB** (**32 MB** excluding spherical harmonic data).\\n\\n### Compressed PLY Format\\n\\nSo we introduced a _compressed PLY_ format for use in runtime applications. The compressed PLY file format ignores the unused spherical harmonic data and stores the rest of the elements in quantized integers.\\n\\nThe format can be summarized as follows:\\n\\n- Split the scene into chunks of 256 splats\\n- For each chunk, store the min and max (x, y, z) for position and scale in floating point\\n- For each splat in the chunk, store a normalized and quantized value for position and scale (relative to chunk extents) and orientation and color\\n\\nThis data layout results in the following data _per chunk_:\\n\\n| Name | Data Format | Bytes |\\n| -------------- | ----------- | ----- |\\n| Position bound | 6 x float | 24 |\\n| Scale bound | 6 x float | 24 |\\n| Total | | 48 |\\n\\nAnd the following data _per splat_:\\n\\n| Name | Data Format | Bytes |\\n| ----------- | ---------------------- | ----- |\\n| Position | uint32 (11, 10, 11) | 4 |\\n| Orientation | uint32 (2, 10, 10, 10) | 4 |\\n| Scale | uint32 (11, 10, 11) | 4 |\\n| Color | uint32 (8, 8, 8, 8) | 4 |\\n| Total | | 16 |\\n\\nAs a result, the compressed version of `guitar.ply` takes only **8.7 MB**.\\n\\n### Do It Yourself\\n\\nThe easiest way to generate a compressed PLY file yourself is using the [SuperSplat tool](https://playcanvas.com/super-splat). Load the PLY file into SuperSplat and export it again using the \'Compressed Ply File\' option:\\n\\n[![SuperSplat Export](/img/super-splat-export.png)](https://playcanvas.com/super-splat)\\n\\nIf you are interested in the file format specifics, see [this code](https://github.com/playcanvas/engine/blob/a86bd8be0cfd4e39e9ba5e5466acb6875ab9906e/extras/splat/splat-data.js#L257) which demonstrates how to decompress the file data.\\n\\nSee [this editor project](https://playcanvas.com/project/1165904/overview/gaussiansplatdemo) for an example of loading and rendering a compressed gaussian splat PLY file. Or you can [run it here](https://playcanv.as/p/69cnpevQ/).\\n\\n### Summary and Future\\n\\nWe have introduced a new compressed PLY format for gaussian splatting which is roughly 4x smaller than uncompressed data and can be used in realtime applications.\\n\\nIn future we hope to:\\n\\n- store splats hierarchically for optimized rendering and culling\\n- implement realtime splat LOD\\n- test skinning and animation of gaussian splats\\n- further compress gaussian splat data\\n- optimize WebGPU rendering\\n\\n### References\\n\\nThe compressed format is largely based on the fine work of Aras Pranckevi\u010dius and his [blog posts](https://aras-p.info/)."},{"id":"avif-webp-land-in-editor","metadata":{"permalink":"/avif-webp-land-in-editor","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-10-11-avif-webp-lands-in-editor.md","source":"@site/blog/2023-10-11-avif-webp-lands-in-editor.md","title":"Boost Your Efficiency: Editor gets Support for AVIF and WebP","description":"AVIF + WebP Support","date":"2023-10-11T00:00:00.000Z","tags":[{"inline":true,"label":"editor","permalink":"/tags/editor"},{"inline":true,"label":"textures","permalink":"/tags/textures"},{"inline":true,"label":"workflow","permalink":"/tags/workflow"},{"inline":true,"label":"compression","permalink":"/tags/compression"}],"readingTime":2.215,"hasTruncateMarker":true,"authors":[{"name":"Mark Lundin","title":"Software Engineer","page":{"permalink":"/authors/mark"},"socials":{"x":"https://x.com/mark_lundin","linkedin":"https://www.linkedin.com/in/marklundin2/","github":"https://github.com/marklundin"},"imageURL":"https://github.com/marklundin.png","key":"mark"}],"frontMatter":{"authors":"mark","slug":"avif-webp-land-in-editor","title":"Boost Your Efficiency: Editor gets Support for AVIF and WebP","tags":["editor","textures","workflow","compression"]},"unlisted":false,"prevItem":{"title":"Compressing Gaussian Splats","permalink":"/compressing-gaussian-splats"},"nextItem":{"title":"glTF Viewer 4.0 Adds WebGPU Support","permalink":"/gltf-viewer-adds-webgpu-support"}},"content":"![AVIF + WebP Support](/img/avif-webp-icons.png)\\n\\n**Today we\'re excited to announce that PlayCanvas now supports WebP and AVIF images natively in the editor. Two new, efficient image formats built for the web.**\\n\\nThis is not just an exciting update for us but a game-changer for anyone looking to optimize their projects for faster load times and better quality.\\n\\n\x3c!-- truncate --\x3e\\n\\nJPGs and PNGs have served us well. They\'re reliable and you can use them everywhere. AVIF and WebP are the new kids on the block. They offer better compression with a wider range of features like alpha channels, HDR and wide color gamut. But how do these formats work in practice and are they really that good? Let\'s dive in.\\n\\n_Take a look at the following images:_\\n\\n\\n\\nThey look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 18Kb, and the JPG counterpart over 4 times larger at 74Kb! This level of compression is not just impressive on its own. When you\'re working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.\\n\\nWhat does this mean for you? Well, that\'s simple: it\'s all about efficiency and speed without sacrificing quality. Textures are one of the biggest assets in a 3D project and AVIF and WebP significantly reduce image sizes compared to traditional JPEGs and PNGs and that means faster load times and happier users. \ud83d\ude4c\\n\\n#### AVIF all the things?\\n\\nOk, so browser support for AVIF is good, but not great according to [caniuse](https://caniuse.com/?search=avif), so always [check support](https://dev.to/nucliweb/detect-avif-image-support-to-use-in-your-css-4pen) and use the right format for your users. Different formats are better suited for different content. It\'s not a one-size-fits-all solution, so we encourage you to explore various options and choose the one best for you.\\n\\n#### Getting Started\\n\\nEasy! Just start uploading your AVIF and WebP files into the Asset Panel, and for those of you wanting to convert your existing assets, you can now right-click on your asset in the Asset Panel and quickly convert your asset into a PNG, JPG, WebP or an AVIF.\\n\\n![Quick Convert](/img/convert-animation.gif)\\n\\nSo there you have it! This is not just a feature release; it\'s our way of saying we\'re listening and we care. We\'re excited to hear your thoughts on these new features. Give them a try and share your experiences with us.\\n\\nTill then, keep creating, keep innovating!"},{"id":"gltf-viewer-adds-webgpu-support","metadata":{"permalink":"/gltf-viewer-adds-webgpu-support","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-10-10-gltf-viewer-adds-webgpu-support.md","source":"@site/blog/2023-10-10-gltf-viewer-adds-webgpu-support.md","title":"glTF Viewer 4.0 Adds WebGPU Support","description":"We\'re thrilled to announce the launch of the open source glTF Viewer 4.0, an update that supercharges your 3D model viewing experience with powerful features and support for the latest web technologies!","date":"2023-10-10T00:00:00.000Z","tags":[{"inline":true,"label":"ar","permalink":"/tags/ar"},{"inline":true,"label":"gltf","permalink":"/tags/gltf"},{"inline":true,"label":"viewer","permalink":"/tags/viewer"},{"inline":true,"label":"webgpu","permalink":"/tags/webgpu"},{"inline":true,"label":"webxr","permalink":"/tags/webxr"}],"readingTime":3.655,"hasTruncateMarker":true,"authors":[{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will"}],"frontMatter":{"authors":"will","slug":"gltf-viewer-adds-webgpu-support","title":"glTF Viewer 4.0 Adds WebGPU Support","tags":["ar","gltf","viewer","webgpu","webxr"]},"unlisted":false,"prevItem":{"title":"Boost Your Efficiency: Editor gets Support for AVIF and WebP","permalink":"/avif-webp-land-in-editor"},"nextItem":{"title":"PlayCanvas Adds Sketchfab Integration","permalink":"/playcanvas-adds-sketchfab-integration"}},"content":"We\'re thrilled to announce the launch of the [open source](https://github.com/playcanvas/model-viewer) **glTF Viewer 4.0**, an update that supercharges your 3D model viewing experience with powerful features and support for the latest web technologies!\\n\\n[![glTF Viewer 4.0](/img/gltf-viewer-4.png)](/img/gltf-viewer-4.png) \\n_[\\"Cyber Samurai\\"](https://skfb.ly/ooZKG) by KhoaMinh is licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)._\\n\\n[**TRY IT NOW**](https://playcanvas.com/viewer?load=https://s3.eu-west-1.amazonaws.com/static.playcanvas.com/models/IridescentDishWithOlives.glb&default&skybox.value=Abandoned%20Tank%20Farm&skybox.background=Projective%20Dome&debug.grid=false&shadowCatcher.enabled=true&default)\\n\\nThis new release is chock-full with enhancements aimed at providing more realistic, insightful, and versatile viewing options for your glTF files. Let\'s dive into the headline features of glTF Viewer 4.0.\\n\\n\x3c!-- truncate --\x3e\\n\\n#### New WebGPU Renderer\\n\\n![WebGPU Logo](/img/webgpu-logo.svg)\\n\\nTopping the list of today\'s updates is support for WebGPU! WebGPU heralds a new era in graphics and compute capabilities, offering enhanced performance and efficiency. Users can now select WebGPU as their default renderer, and don\'t worry if your platform doesn\'t support it yet - the viewer gracefully falls back to WebGL 2, and subsequently WebGL 1, depending on API availability. Note that WebGPU support is considered beta for the moment and you\'ll need to proactively enable it and refresh the viewer to check it out:\\n\\n[![Enable WebGPU for glTF Viewer](/img/gltf-viewer-webgpu-toggle.gif)](/img/gltf-viewer-webgpu-toggle.gif)\\n\\nAlso make sure you\'re running the viewer in a browser that supports WebGPU. At time of writing, this means Google Chrome!\\n\\n#### Enhanced WebXR AR Mode\\n\\n
\\n \\n
\\n\\nTake your 3D models into the real world with our revamped WebXR Augmented Reality (AR) mode! Available currently on Android devices, this enhanced AR mode lets you view any model in your actual environment, complete with intuitive new controls that allow you to accurately position and rotate objects in the real world. Let\'s hope Apple decides to roll out WebXR support on iOS soon! \ud83d\ude4f\\n\\n#### Frame Selected Node\\n\\n
\\n \\n
\\n\\nNavigating large scenes can be a pain - Viewer 4.0 addresses this by allowing you to select a node in the scene via the hierarchy panel on the left. You can then press \'F\' on the keyboard to frame that node and recenter the orbit camera on that node\'s position.\\n\\n#### Better Immersion with Projective Sky Dome\\n\\n
\\n \\n
\\n\\n_[\\"130\\"](https://skfb.ly/6R9Ow) by mononofu is licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)._\\n\\nExperience realistic photographic skies with our new projective sky dome! While previous versions allowed for skyboxex with an infinite projection, 4.0 introduces a dome-shaped skybox projection that incorporates a flat ground plane. This warps the skybox texture to have a more believable appearance, delivering a more authentic and immersive perspective, melding your 3D models with strikingly realistic backdrops.\\n\\n#### Debug and Inspect with Render Mode\\n\\n[![glTF Viewer Render Mode](/img/gltf-viewer-render-mode.gif)](/img/gltf-viewer-render-mode.gif)\\n\\nEnsuring that developers can seamlessly troubleshoot and inspect glTF files, the new render mode allows you to select and display individual inputs/outputs of the render pipeline, including albedo, emissive, normals, gloss, AO, and more. This new level of insight is invaluable for debugging, making it even easier to work with your glTF data.\\n\\n#### Enhanced Realism with VSM Shadows\\n\\nThe addition of Variance Shadow Mapping (VSM) casts your 3D scenes in a new light, literally! Shadows aren\'t merely aesthetic; they provide context and depth, especially in AR mode, assisting to ground your object naturally within its real-world environment. Explore scenes with a newfound depth and realism that draws viewers into the experience, both in standard and AR viewing modes. Find the new shadow controls in the Light Settings panel:\\n\\n[![glTF Viewer Light Settings](/img/gltf-viewer-light-settings.png)](/img/gltf-viewer-light-settings.png)\\n\\n### Join Our Open Source Community\\n\\nWe\'re not just excited to share these innovations with you; we\'re eager to hear your thoughts and welcome your contributions! If there\'s a feature you\'re longing for, please don\'t hesitate to [submit your requests](https://github.com/playcanvas/model-viewer/issues).\\n\\nBetter yet, become an active contributor to our codebase! Our open-source community thrives on collaboration and fresh perspectives. So, dive right in, [explore the code](https://github.com/playcanvas/model-viewer), and let\'s shape the future of 3D model viewing together! Your expertise and insights could help shape the next release.\\n\\n[**GO TO GITHUB NOW**](https://github.com/playcanvas/model-viewer)\\n\\n### Conclusion\\n\\nWith glTF Viewer 4.0, we\'re redefining the standards of 3D model viewing. From WebGPU-powered rendering to WebXR-powered AR, this update is designed to inspire, assist, and elevate your work with glTF data.\\n\\nSo stay creative, friends, and we\'ll see you on the [forums](https://forum.playcanvas.com/)! \ud83d\udc4b"},{"id":"playcanvas-adds-sketchfab-integration","metadata":{"permalink":"/playcanvas-adds-sketchfab-integration","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-06-26-playcanvas-adds-sketchfab-itegration.md","source":"@site/blog/2023-06-26-playcanvas-adds-sketchfab-itegration.md","title":"PlayCanvas Adds Sketchfab Integration","description":"Today, we\'re excited to announce the integration of Sketchfab into the PlayCanvas Editor!","date":"2023-06-26T00:00:00.000Z","tags":[{"inline":true,"label":"asset-store","permalink":"/tags/asset-store"},{"inline":true,"label":"editor","permalink":"/tags/editor"},{"inline":true,"label":"sketchfab","permalink":"/tags/sketchfab"},{"inline":true,"label":"workflow","permalink":"/tags/workflow"}],"readingTime":2.165,"hasTruncateMarker":true,"authors":[{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will"}],"frontMatter":{"authors":"will","slug":"playcanvas-adds-sketchfab-integration","title":"PlayCanvas Adds Sketchfab Integration","tags":["asset-store","editor","sketchfab","workflow"]},"unlisted":false,"prevItem":{"title":"glTF Viewer 4.0 Adds WebGPU Support","permalink":"/gltf-viewer-adds-webgpu-support"},"nextItem":{"title":"Moving from WordPress to Jekyll - A Case Study","permalink":"/moving-from-wordpress-to-jekyll-a-case-study"}},"content":"Today, we\'re excited to announce the integration of Sketchfab into the PlayCanvas Editor!\\n\\n
\\n \\n
\\n\\n_[\\"Spartan Armour\\"](https://skfb.ly/6QVvM) by McCarthy3D is licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)._\\n\\nWith today\'s launch you\'ll have instant access to Sketchfab\'s enormous library of high quality 3D content right inside the Editor.\\n\\n\x3c!-- truncate --\x3e\\n\\n### What Is Sketchfab?\\n\\n[Sketchfab](https://sketchfab.com/) is a platform that allows users to publish, share and discover 3D content on the web. You can think of it as a sort of \\"YouTube for 3D models\\". The platform hosts millions of 3D models in various formats, including glTF, OBJ, STL, and more.\\n\\nUsers can upload their 3D models to Sketchfab and embed them in other websites much like one would embed a YouTube video. This has made it popular for showcasing 3D models for a wide range of uses including game assets, 3D scans, architectural models, and educational content.\\n\\n### Accessing Sketchfab from the Asset Store\\n\\nEarlier this month, we [announced](https://blog.playcanvas.com/announcing-the-new-playcanvas-asset-store/) the brand new PlayCanvas Asset Store. The Asset Store is an in-Editor panel of useful assets that you can use in your projects. With a few clicks, you can browse, discover and import various types of content. So it is the obvious place to incorporate the vast Sketchfab content library.\\n\\nTo access the Sketchfab library, simply hit the Asset Store button on the Asset Panel header and select the SKETCHFAB filter on the left.\\n\\n[![Open Sketchfab](/img/asset-store-sketchfab-open.gif)](/img/asset-store-sketchfab-open.gif)\\n\\n### Authorizing PlayCanvas to Access Sketchfab\\n\\nIf you want to import models from Sketchfab into PlayCanvas, you first need to create a Sketchfab account. Then, the first time you try to import a Sketchfab model in the Asset Store, you will be asked to authorize PlayCanvas to access your Sketchfab account.\\n\\n[![Authorize Sketchfab](/img/asset-store-sketchfab-authorize.gif)](/img/asset-store-sketchfab-authorize.gif)\\n\\nIt\'s so quick and easy!\\n\\n### New License and Author Info for Assets\\n\\nSketchfab assets are all tagged with a license and an author. When you import Sketchfab content into your PlayCanvas projects, it\'s important that we preserve this information. Now, when you click on any imported asset, you\'ll see we\'ve added links to license and author information in the Inspector panel.\\n\\n[![Sketchfab Licenses](/img/asset-store-sketchfab-license.gif)](/img/asset-store-sketchfab-license.gif)\\n\\nThis ensures that the author\'s licensing wishes are respected and that they recieve credit for their work.\\n\\n### Go Forth and Create\\n\\nWith today\'s release, it\'s never been easier to create interactive 3D experiences for the web. We hope you love the new Sketchfab integration. But, as always, we _love_ to hear your opinions so head over to the [forum](https://forum.playcanvas.com/t/playcanvas-integrates-sketchfab/31885) and join the conversation. Happy creating! \ud83d\udea7\ud83d\udc77"},{"id":"moving-from-wordpress-to-jekyll-a-case-study","metadata":{"permalink":"/moving-from-wordpress-to-jekyll-a-case-study","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-06-07-moving-from-wordpress-to-jekyll-a-case-study.md","source":"@site/blog/2023-06-07-moving-from-wordpress-to-jekyll-a-case-study.md","title":"Moving from WordPress to Jekyll - A Case Study","description":"Welcome to the new PlayCanvas blog! \ud83d\ude0e","date":"2023-06-07T00:00:00.000Z","tags":[{"inline":true,"label":"jekyll","permalink":"/tags/jekyll"},{"inline":true,"label":"wordpress","permalink":"/tags/wordpress"},{"inline":true,"label":"github","permalink":"/tags/github"}],"readingTime":6.745,"hasTruncateMarker":true,"authors":[{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will"}],"frontMatter":{"authors":"will","slug":"moving-from-wordpress-to-jekyll-a-case-study","title":"Moving from WordPress to Jekyll - A Case Study","tags":["jekyll","wordpress","github"]},"unlisted":false,"prevItem":{"title":"PlayCanvas Adds Sketchfab Integration","permalink":"/playcanvas-adds-sketchfab-integration"},"nextItem":{"title":"Announcing the New PlayCanvas Asset Store","permalink":"/announcing-the-new-playcanvas-asset-store"}},"content":"Welcome to the new PlayCanvas blog! \ud83d\ude0e\\n\\n![PlayCanvas To Jekyll](/img/playcanvas-to-jekyll.png)\\n\\nWe have made the decision to move from WordPress to [Jekyll](https://jekyllrb.com/) and although it\'s early days, so far, we are very pleased with the results. Therefore, we thought it might be useful to explain the reasons why we did this and describe the process we followed.\\n\\n\x3c!-- truncate --\x3e\\n\\n### Some History\\n\\nWe originally started our blog back in February 2012 with a very [low-key post](https://blog.playcanvas.com/hello-world/). We installed our own instance of WordPress and that functioned fine for a few years. However, in 2015, we decided that we didn\'t want to deal with managing a WordPress instance ourselves and so we signed up for [WPEngine](https://wpengine.com/), a WordPress hosting service. And there we stayed until today.\\n\\n### A Better Way?\\n\\nOver the years, some frustrations over WordPress did start to materialize. Customizing styling was tricky, bulk editing posts was not an option, managing media through the media library was quite inconvenient, and so on. On top of that, our blog was continuing to grow in popularity and WPEngine costs were rising. A team member suggested Jekyll as an alternative so we ran some tests to see what would be involved in a migration.\\n\\n### Migrating from WordPress to Jekyll\\n\\nFirst up, I should say that you should make use of ChatGPT when you attempt something like this. It made it a smooth and pleasant experience for me. But so you can see how straightforward it was, here are the key steps:\\n\\n1. **Export Your WordPress Content.** On your WordPress Dashboard, navigate to Tools > Export and select \'All Content\'. Click \'Download Export File\'. You should receive an XML file that contains all of your site\u2019s content.\\n2. **Convert WordPress Export to Jekyll Format.** To convert your WordPress export file to a Jekyll-friendly format, you can use a tool called `exitwp`. Here are the steps:\\n\\n - Clone or download `exitwp` from its [GitHub repository](https://github.com/thomasf/exitwp).\\n - Put your WordPress XML file in the `wordpress-xml` directory in the `exitwp` directory.\\n - Run `exitwp` (requires Python and some libraries, see the repo\'s `README` for details).\\n - This will generate a `_posts` directory containing all your blog posts converted into markdown format that Jekyll understands.\\n\\n3. **Setting Up Jekyll.**\\n\\n - Install Ruby and Jekyll. For installation guide refer to [Jekyll\'s official site](https://jekyllrb.com/docs/installation/).\\n - Create a new Jekyll site by typing `jekyll new my-awesome-site` in the command line.\\n - Replace the `_posts` directory in your new Jekyll site with the `_posts` directory that `exitwp` generated.\\n - You can run your site locally to see how it looks by using the command `bundle exec jekyll serve`.\\n - Then, open your browser to http://localhost:4000.\\n\\nOnce I had our blog post content successfully exported to a basic Jekyll site, I checked everything in to a new [GitHub repository](https://github.com/playcanvas/blog). From this point, I wanted any change I made to the content to be tracked via Git version control - I mean, why wouldn\'t you?\\n\\nThe initial migration to Markdown worked OK but it wasn\'t perfect. There was a lot of superfluous whitespace in the generated Markdown and syntax was broken in places. So I took the opportunity to do a wholesale spring clean of the Markdown content.\\n\\n#### Prettier\\n\\n[Prettier](https://prettier.io/) is a great code formatter but you may not know that it also has built-in support for Markdown formatting. I installed Prettier via NPM and ran it over all Markdown files:\\n\\n```shell\\nprettier --write _posts\\n```\\n\\nAll formatting was now beautifully consistent.\\n\\n#### Linkinator\\n\\n[Linkinator](https://github.com/JustinBeckwith/linkinator) is a tool for reporting broken hyperlinks in both Markdown and HTML. I scanned the locally generated Jekyll site with it using the following command:\\n\\n```shell\\nlinkinator . --server-root _site --recurse --verbosity error\\n```\\n\\nI fixed well over 100 dead links. The older the post, the more dead links there tended to be (as you might expect). While I was always able to use Linkinator on the published WordPress site, it was never convenient to skip from post to post and edit hyperlinks in the WordPress UI (we have over 220 posts). So I never made the time for it. Now I was able to quickly search and replace links in Visual Studio Code and it was a breeze.\\n\\nAside from giving your readers a better experience, here\'s what ChatGPT has to say about dead links:\\n\\n> While Google\'s algorithms are complex and multifaceted, it is generally understood that having too many broken or dead links on your site can negatively affect your website\'s SEO ranking, albeit indirectly.\\n\\nSo this step was definitely worth doing!\\n\\n#### Media Library\\n\\nEvery WordPress blog has a Media Library that contains all of the images and videos referenced by your posts. The PlayCanvas Media Library had over 1GB of content. However, I noticed that a large amount of content was not actually referenced by any post. I wanted to ensure that I exported only the _used_ media (since I didn\'t want to bloat the GitHub repository).\\n\\n- **Step 1:** Install WordPress plugin [Media Cleaner](https://wordpress.org/plugins/media-cleaner/) and use it to delete unused media files.\\n- **Step 2:** Install WordPress plugin [Export Media Library](https://wordpress.org/plugins/export-media-library/) to download all remaining media files in a ZIP.\\n\\nThis process cut the Media Library from 1GB to about 550MB. I simply extracted the ZIP contents to `assets/media` (relative to the root folder of my Jekyll site) and then did a search and replace of all media embed links to use the new file location. Easy!\\n\\n### Hosting on GitHub Pages\\n\\nI now had a fully exported and functional Jekyll blog. But where to host it? One option was to throw the static site onto a file server and put it behind a CDN. But wait, the file-set of the Jekyll blog now sits in GitHub, so why not use [GitHub Pages](https://pages.github.com/) to host the site? There are some great benefits:\\n\\n- Deployment is a breeze to set up.\\n- It\'s a managed platform so you just don\'t need to worry about maintenance and security as you would with your own infra.\\n- And, oh yeah, **it\'s free!**\\n\\n### The Pros and Cons\\n\\nSo now that we\'re migrated over, let\'s quickly summarize the key benefits:\\n\\n- **Free:** Costs for our blog are now a pleasing $0.\\n- **Secure:** We have eliminated a potential attack vector. No more password reset confirmation emails!\\n- **Powerful Tooling:** There\'s a vast array of free and open source tools to lint and format Markdown.\\n- **Easy Editing:** Choose any editor you like such as the awesome Visual Studio Code.\\n- **Versioned:** All content is now under version control providing revision history, diffing and so on.\\n- **Collaborative:** We can take contributions to the blog via GitHub\'s pull request mechanism.\\n- **Customizable:** We have fine-grain control over the HTML and styling of posts using Jekyll themes.\\n- **Platform Agnostic:** Markdown makes it trivial to migrate to any other platform in the future.\\n\\nOK, but what about the cons? \ud83e\udd14 I have to tell you - I genuinely can\'t think of any! Sure, we don\'t have comments enabled now but as I understand it, Disqus has a [Jekyll integration](https://help.disqus.com/en/articles/1935528-jekyll-installation-instructions) that we can turn on at some point. Seriously, feel free to ping me on [Twitter](https://twitter.com/willeastcott/) if you think I\'m missing something here. But I wish we had taken this step years ago.\\n\\n### Open Source and Open to Contributions\\n\\nAs mentioned, the blog is now on [GitHub](https://github.com/playcanvas/blog). Take a moment to go check out the repository and hit that Star button if you like what we\'ve done here. \u2b50 We\'ve taken the step to open source the blog\'s content under an [Attribution-NonCommercial 4.0 International](https://github.com/playcanvas/blog/blob/main/LICENSE.md) license. This is part of our continuing drive to open source most of what we do.\\n\\nUltimately, we want **you** to get involved and help us make the blog better and better over time. Consider submitting issues and pull requests yourself.\\n\\n- Submit spelling and grammar fixes.\\n- Submit design tweaks and improvements.\\n- Submit your own posts showcasing your PlayCanvas projects.\\n\\nIt\'s your blog! \ud83d\ude0a\\n\\nThat\'s all from me. Looking forward to many-a-future blogs posts on this new platform. \ud83d\udc4b"},{"id":"announcing-the-new-playcanvas-asset-store","metadata":{"permalink":"/announcing-the-new-playcanvas-asset-store","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-04-26-announcing-the-new-playcanvas-asset-store.md","source":"@site/blog/2023-04-26-announcing-the-new-playcanvas-asset-store.md","title":"Announcing the New PlayCanvas Asset Store","description":"The PlayCanvas Asset Store is the first place that users tend to go to find content for their projects. This is especially true for new users who want to get started as quickly as possible. Up until now, the Store has not been particularly easy to use and the content has not changed in quite a long time. In short, a complete overhaul and refresh has been long overdue. So today, we are incredibly excited to announce a major upgrade for the PlayCanvas Asset Store!","date":"2023-04-26T00:00:00.000Z","tags":[{"inline":true,"label":"asset-store","permalink":"/tags/asset-store"},{"inline":true,"label":"editor","permalink":"/tags/editor"},{"inline":true,"label":"news","permalink":"/tags/news"},{"inline":true,"label":"workflow","permalink":"/tags/workflow"}],"readingTime":3.44,"hasTruncateMarker":true,"authors":[{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will"}],"frontMatter":{"authors":"will","slug":"announcing-the-new-playcanvas-asset-store","title":"Announcing the New PlayCanvas Asset Store","tags":["asset-store","editor","news","workflow"]},"unlisted":false,"prevItem":{"title":"Moving from WordPress to Jekyll - A Case Study","permalink":"/moving-from-wordpress-to-jekyll-a-case-study"},"nextItem":{"title":"Initial WebGPU support lands in PlayCanvas Engine 1.62!","permalink":"/initial-webgpu-support-lands-in-playcanvas-engine-1-62"}},"content":"The PlayCanvas Asset Store is the first place that users tend to go to find content for their projects. This is especially true for new users who want to get started as quickly as possible. Up until now, the Store has not been particularly easy to use and the content has not changed in quite a long time. In short, a complete overhaul and refresh has been long overdue. So today, we are incredibly excited to announce a major upgrade for the PlayCanvas Asset Store!\\n\\nFirst up, check out a little example of building a city scene using content taken from the Asset Store. A skybox, a pack of 3D city block meshes and a camera control script are imported and the city is built via drag and drop. And _not one single line of code is needed_!\\n\\n
\\n \\n
\\n\\nNow, let\'s examine some of the key highlights that make the new Asset Store so special.\\n\\n\x3c!-- truncate --\x3e\\n\\n### Built Right In To The Editor\\n\\nIt should be possible to grab assets quickly, right from within the Editor itself. Why should you have to open a new tab and go hunting around the web? So to keep things as convenient as possible, the ASSET STORE button (in the Editor\'s Assets Panel) now opens a nicely designed, responsive Asset Store panel.\\n\\n[![Asset Store Panel](/img/asset-store-open.gif)](/img/asset-store-open.gif)\\n\\nOne really cool benefit of selecting assets from within the Editor is that the currently selected Asset folder is known. This means you have compete control over where your imported assets will be saved.\\n\\n### Preview Store Assets Before Import\\n\\nSometimes, an asset thumbnail just isn\'t sufficient to tell if a particular asset is what you want.\\n\\n[![Asset Store Viewer](/img/asset-store-viewer.gif)](/img/asset-store-viewer.gif)\\n\\nOur new Store allows you to select a Store Item and preview it in an appropriate viewer (glTF Viewer for 3D models, Texture Viewer for textures and cubemaps).\\n\\n### Find What You Want Quickly\\n\\nAs the number of store items continues to grow, it\'s going to be incredibly important for you to be able to narrow down your assets searches. As a result, the new Store comes with powerful searching, sorting and filtering capabilities.\\n\\n[![Asset Store Search](/img/asset-store-search.gif)](/img/asset-store-search.gif)\\n\\nYou can filter by asset type, search asset names and descriptions and then order search results on a host of criteria.\\n\\n### Fresh New Content\\n\\nRecently, the Asset Store content was, let\'s just say, beginning to show its age. We are now in a world of HDR skyboxes, PBR materials and high polygon meshes. So it made sense to erase old store items and refresh the Store with better, more modern content. We have selected a broad variety of Creative Commons assets from fantastic content sources such as [kenney.nl](https://kenney.nl/), [HDRi Haven](https://hdri-haven.com/), [Sketchfab](https://sketchfab.com/) and Khronos\' [glTF Sample Models](https://github.com/KhronosGroup/glTF-Sample-Models).\\n\\n[![Asset Store Content](/img/asset-store-content.gif)](/img/asset-store-content.gif)\\n\\nIf you would have any suggestions for content you would like to be added to the Store, please do let us know!\\n\\n### The Future\\n\\nThere\'s still so much we want to do with the new Asset Store! But here are some things we have in mind:\\n\\n1. **More Content.** The important thing to say about today\'s update is that it delivers the core infrastructure on which we can iterate. It is now exceptionally easy for us to populate the store with more content. So, in the near term, you can expect to see the range of content expand quite rapidly.\\n\\n2. **Third Party Stores.** Now that we have a solid foundation in place for the Store, we have the ability to host third party stores within the same UI and maximize your choice.\\n\\n3. **More Asset Types.** Today\'s launch offers models, fonts, textures, skyboxes and scripts. Next, we want to add audio assets and template assets (AKA prefabs). Template assets in particular are very exciting because you would be able to import fully interactive, visual entities into your projects (such as a drivable vehicle or a controllable character).\\n\\nWhat would _you_ like to see us add to the Asset Store next? Let us know on the [forum](https://forum.playcanvas.com/).\\n\\nHappy creating, friends!"},{"id":"initial-webgpu-support-lands-in-playcanvas-engine-1-62","metadata":{"permalink":"/initial-webgpu-support-lands-in-playcanvas-engine-1-62","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-03-31-initial-webgpu-support-lands-in-playcanvas-engine-1-62.md","source":"@site/blog/2023-03-31-initial-webgpu-support-lands-in-playcanvas-engine-1-62.md","title":"Initial WebGPU support lands in PlayCanvas Engine 1.62!","description":"WebGPU is a cutting-edge technology that promises to revolutionize the way 3D graphics are handled on the web. As the successor to WebGL, WebGPU provides faster and more efficient rendering capabilities for complex 3D graphics and simulations.","date":"2023-03-31T00:00:00.000Z","tags":[{"inline":true,"label":"webgpu","permalink":"/tags/webgpu"}],"readingTime":3.11,"hasTruncateMarker":true,"authors":[{"name":"Martin Valigursky","title":"Software Engineer","page":{"permalink":"/authors/martin"},"socials":{"x":"https://x.com/ValigurskyM","linkedin":"https://www.linkedin.com/in/martin-valigursky/","github":"https://github.com/mvaligursky"},"imageURL":"https://github.com/mvaligursky.png","key":"martin"}],"frontMatter":{"authors":"martin","slug":"initial-webgpu-support-lands-in-playcanvas-engine-1-62","title":"Initial WebGPU support lands in PlayCanvas Engine 1.62!","tags":["webgpu"]},"unlisted":false,"prevItem":{"title":"Announcing the New PlayCanvas Asset Store","permalink":"/announcing-the-new-playcanvas-asset-store"},"nextItem":{"title":"WebXR AR Made Easy with PlayCanvas","permalink":"/webxr-ar-made-easy-with-playcanvas"}},"content":"WebGPU is a cutting-edge technology that promises to revolutionize the way 3D graphics are handled on the web. As the successor to WebGL, WebGPU provides faster and more efficient rendering capabilities for complex 3D graphics and simulations.\\n\\nPlayCanvas has been at the forefront of this new technology and has been working on adding WebGPU support to its platform.\\n\\nWith WebGPU, we can expect to see more immersive and interactive 3D experiences on the web in the future.\\n\\n[![WebGPU Area Lights](/img/webgpu-area-lights-demo.jpg)](/img/webgpu-area-lights-demo.jpg) \\n[_PlayCanvas WebGPU Clustered Area Lights Demo_](https://playcanvas.com/demos/arealights/)\\n\\n\x3c!-- truncate --\x3e\\n\\n## Refactoring of WebGL engine\\n\\nBefore adding support for WebGPU, it\'s important to discuss the significant amount of refactoring work that was required on our existing WebGL engine. Implementing deeper architectural changes while preserving backwards compatibility required a significant amount of meticulous care.\\n\\n- To enable support for WebGPU, we needed to establish a clear separation of graphics technology that could be shared between WebGL and WebGPU. This involved a significant refactoring effort to extract WebGL-specific code into a separate set of classes.\\n- PlayCanvas utilizes a collection of shader chunks to produce GLSL shaders that implement advanced material properties and lighting modes, as well as custom shader chunks defined by users. However, since WebGPU employs the WGSL language, we used glslang and tint WASM modules to dynamically convert these shaders on-the-fly with injecting support for uniform buffers and other modifications.\\n- The PlayCanvas engine lacked explicit render passes, making the rendering process more rigid and harder to extend. This was solved by implementing a FrameGraph that allowed us to describe the rendering process as a set of render passes, their dependencies, and associated targets, which created a more flexible and performant rendering architecture.\\n- Unlike WebGL, which sets render state and shaders using a custom API, WebGPU specifies all those through render pipelines. To support both rendering APIs with optimal performance, we needed to refactor the render states into standalone objects that are efficient to compare and set up.\\n- To support the WebGPU platform, we need to undergo a significant refactoring to organize uniforms into uniform buffers.\\n- To facilitate the asynchronous creation of WebGPU device, we have introduced a new async API to create a graphics device, which is the primary breaking change required to adopt WebGPU.\\n\\n## What is left to do\\n\\n- Our primary objective is to align the WebGPU implementation with that of WebGL, and while we have made significant progress towards this goal, there are still some features that are missing. Furthermore, several smaller details require cleanup and rectification.\\n- We need to incorporate it into the Editor environment for both launched and published applications. Currently, only WebGL is available in this environment.\\n- Our primary objective is to achieve full parity with WebGL, but initially, we are focusing on basic implementations of some concepts to deliver a working implementation, which will need to be extended to meet our performance objectives.\\n- WebGPU provides developers with access to Compute Shaders, which enables more efficient parallel processing of data on the GPU. This feature can significantly improve the performance of complex algorithms and simulations, which may have been impractical to run on the CPU. With access to Compute Shaders, we can bring new visual features to the next level, such as advanced particle systems, post-processing and global illumination techniques.\\n\\n## Engine examples\\n\\nAs an early pre-release of WebGPU, we have updated several engine examples to use it, which can be accessed on [https://playcanvas.github.io](https://playcanvas.github.io/). To use WebGPU, the Chrome Canary browser is required, with the \'chrome://flags/#enable-unsafe-webgpu\' flag enabled.\\n\\n[![Examples Browser WebGPU](/img/playcanvas-examples-browser-webgpu.jpg)](/img/playcanvas-examples-browser-webgpu.jpg)\\n\\n[PlayCanvas Examples Browser](https://playcanvas.github.io/)\\n\\nLet us know what you think in the [forums](https://forum.playcanvas.com/t/engine-release-v1-62/30360)!\\n\\n### Attributions\\n\\n[Oldsmobile Cutlass Supreme Sedan \'71](https://sketchfab.com/3d-models/oldsmobile-cutlass-supreme-sedan-71-78f76d386a4341b0b71745bdc50fd5ab) by Barbo is licensed under [Creative Commons Attribution](https://creativecommons.org/licenses/by/4.0/)"},{"id":"webxr-ar-made-easy-with-playcanvas","metadata":{"permalink":"/webxr-ar-made-easy-with-playcanvas","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-03-16-webxr-ar-made-easy-with-playcanvas.md","source":"@site/blog/2023-03-16-webxr-ar-made-easy-with-playcanvas.md","title":"WebXR AR Made Easy with PlayCanvas","description":"We are excited to announce the launch of our WebXR AR Starter Kit, available in the New Project dialog today!","date":"2023-03-16T00:00:00.000Z","tags":[{"inline":true,"label":"ar","permalink":"/tags/ar"},{"inline":true,"label":"webxr","permalink":"/tags/webxr"}],"readingTime":0.815,"hasTruncateMarker":true,"authors":[{"name":"Steven Yau","title":"Partner Relations Manager","page":{"permalink":"/authors/steven"},"socials":{"x":"https://x.com/yaustar","linkedin":"https://www.linkedin.com/in/stevenyau/","github":"https://github.com/yaustar"},"imageURL":"https://github.com/yaustar.png","key":"steven"}],"frontMatter":{"authors":"steven","slug":"webxr-ar-made-easy-with-playcanvas","title":"WebXR AR Made Easy with PlayCanvas","tags":["ar","webxr"]},"unlisted":false,"prevItem":{"title":"Initial WebGPU support lands in PlayCanvas Engine 1.62!","permalink":"/initial-webgpu-support-lands-in-playcanvas-engine-1-62"},"nextItem":{"title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","permalink":"/draco-mesh-compression-arrives-in-the-playcanvas-editor"}},"content":"We are excited to announce the launch of our WebXR AR Starter Kit, available in the New Project dialog today!\\n\\n[![New Project WebXR](/img/webar-xr-starterkit-project-dialog.jpg)](/img/webar-xr-starterkit-project-dialog.jpg)\\n\\n[WebXR](https://immersiveweb.dev/) is a technology that powers immersive and interactive AR and VR experiences to be accessed through supported web browsers. This allows us to build memorable, engaging content and share them with just a URL. No installs needed!\\n\\n\x3c!-- truncate --\x3e\\n\\nThe starter kit comes with all you need to kickstart your AR experience for WebXR including:\\n\\n- Real world light estimation\\n- AR shadow renderer\\n- AR object resizing and positioning controls\\n- Physics raycasting\\n- And more!\\n\\nLook how quickly you can create AR experiences below!\\n\\n
\\n \\n
\\n\\n[Pacman Arcade + animation](https://sketchfab.com/3d-models/pacman-arcade-animation-0b43f85af5384ea4bac5d6e2d3cbd008) by Daniel Br\xfcck is licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)\\n\\n[Try it on your device](https://playcanv.as/p/inoDeWOQ/)\\n\\nGive the Starter Kit a try today at [playcanvas.com](https://playcanvas.com) where you can use it for free!"},{"id":"draco-mesh-compression-arrives-in-the-playcanvas-editor","metadata":{"permalink":"/draco-mesh-compression-arrives-in-the-playcanvas-editor","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-02-28-draco-mesh-compression-arrives-in-the-playcanvas-editor.md","source":"@site/blog/2023-02-28-draco-mesh-compression-arrives-in-the-playcanvas-editor.md","title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","description":"We are thrilled to announce the immediate availability of Draco Mesh Compression in the PlayCanvas Editor! Our latest feature allows developers to compress meshes using Google\'s Draco technology, reducing file sizes and enhancing the end-user experience.","date":"2023-02-28T00:00:00.000Z","tags":[{"inline":true,"label":"compression","permalink":"/tags/compression"},{"inline":true,"label":"editor","permalink":"/tags/editor"},{"inline":true,"label":"gltf","permalink":"/tags/gltf"},{"inline":true,"label":"performance","permalink":"/tags/performance"}],"readingTime":1.655,"hasTruncateMarker":true,"authors":[{"name":"Will Eastcott","title":"CEO","description":"Will Eastcott is an entrepreneur and veteran technologist of the games industry with experience at EA, Sony, and Activision. He has been credited in many AAA game franchises such as GTA, Call of Duty and Max Payne. He is best known for co-founding PlayCanvas, the web graphics creation platform. As CEO, he has championed the company\'s mission to make graphical web app development more accessible and collaborative through open-source technologies and cloud-based tools.","page":{"permalink":"/authors/will"},"socials":{"x":"https://x.com/willeastcott","linkedin":"https://www.linkedin.com/in/willeastcott/","github":"https://github.com/willeastcott"},"imageURL":"https://github.com/willeastcott.png","key":"will"}],"frontMatter":{"authors":"will","slug":"draco-mesh-compression-arrives-in-the-playcanvas-editor","title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","tags":["compression","editor","gltf","performance"]},"unlisted":false,"prevItem":{"title":"WebXR AR Made Easy with PlayCanvas","permalink":"/webxr-ar-made-easy-with-playcanvas"},"nextItem":{"title":"How to make your HTML5 Games Awesome!","permalink":"/how-to-make-your-html5-games-awesome"}},"content":"We are thrilled to announce the immediate availability of Draco Mesh Compression in the PlayCanvas Editor! Our latest feature allows developers to compress meshes using Google\'s Draco technology, reducing file sizes and enhancing the end-user experience.\\n\\n\x3c!-- truncate --\x3e\\n\\nAt its core, [Draco Mesh Compression](https://google.github.io/draco/) reduces the amount of data needed to represent 3D graphics without compromising visual quality. The technology achieves this by applying a lossy compression algorithm to the mesh data. With less data to transfer, the result is faster load times and lower bandwidth costs for your applications.\\n\\nThe open source [PlayCanvas Engine](https://github.com/playcanvas/engine) has been able to load Draco-compressed glTF 2.0 files for quite some time now. But now you can generate these Draco-compressed glTF files in the Editor at import time. Check out how easy it is to use:\\n\\n
\\n \\n
\\n\\n_[\\"1972 Datsun 240k GT\\"](https://skfb.ly/6VtZu) by Karol Miklas is licensed under [Creative Commons Attribution-ShareAlike](https://creativecommons.org/licenses/by-sa/4.0/)._\\n\\nIn the example above, a **49.9MB** GLB file is crunched down to only **3.67MB**. That\'s a **92.6% reduction is file size**! And for the majority of scenes, you should notice _no difference in terms of visual quality_. The only cost is decompression time when the compressed GLB is downloaded by an end user, but this should be significantly less than what is saved in terms of download time.\\n\\nTo enable the feature, open your Project Settings in the Inspector, expand the Asset Tasks panel and edit the Mesh Compression setting. Then, simply Re-Import any existing FBX or GLB and compression will be applied. Any FBX or GLB subsequently imported will also respect your mesh compression setting. Read more on the [Developer Site](https://developer.playcanvas.com/user-manual/assets/import-pipeline/#mesh-compression).\\n\\nWe believe that mesh compression is going to take many types of applications to the next level, particularly e-commerce applications like product configurators, which need to load detailed meshes as fast as possible.\\n\\nGet started with PlayCanvas today and make your WebGL dreams a reality!"},{"id":"how-to-make-your-html5-games-awesome","metadata":{"permalink":"/how-to-make-your-html5-games-awesome","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","source":"@site/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","title":"How to make your HTML5 Games Awesome!","description":"How To Make Your HTML5 Games Awesome","date":"2023-02-07T00:00:00.000Z","tags":[{"inline":true,"label":"gamedev","permalink":"/tags/gamedev"},{"inline":true,"label":"html5","permalink":"/tags/html-5"},{"inline":true,"label":"webgl","permalink":"/tags/webgl"}],"readingTime":11.64,"hasTruncateMarker":true,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","page":{"permalink":"/authors/paulo"},"socials":{"linkedin":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/"},"imageURL":"https://media.licdn.com/dms/image/v2/C4D03AQGBCxiefbbUlw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1654615914498?e=1730332800&v=beta&t=430DvI8uuos5obx7BhhHBqhT5TnNTv3q91eOOg6diII","key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"how-to-make-your-html5-games-awesome","title":"How to make your HTML5 Games Awesome!","tags":["gamedev","html5","webgl"]},"unlisted":false,"prevItem":{"title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","permalink":"/draco-mesh-compression-arrives-in-the-playcanvas-editor"},"nextItem":{"title":"PlayCanvas now supports Microsoft volumetric video playback","permalink":"/playcanvas-now-supports-microsoft-volumetric-video-playback"}},"content":"import ReactPlayer from \'react-player\'\\n\\n![How To Make Your HTML5 Games Awesome](/img/Space-Rocks-thumbnail.jpeg)\\n\\nThe quality of a video game is often determined by how polished it is. It\'s the attention to detail and the finishing touches that can make a good game great. In this article, we\'ll take a look at the importance of polish in game development and how it can significantly enhance the overall experience.\\n\\n\x3c!-- truncate --\x3e\\n\\nWe\'ll use [Space Rocks!](https://playcanvas.com/project/1029772/overview/space-rocks), a simple Asteroids game created with the PlayCanvas game engine to showcase how even the smallest details can make a big impact.\\n\\n> [Game juice](https://www.youtube.com/watch?v=Fy0aCDmgnxg) is a design term to refer to the small visual and audio effects that are added to a game to make it feel more satisfying to play. This can include things like screen shakes, particle effects, and sound effects that are triggered when the player takes certain actions. Game juice is all about enhancing the overall feel of a game and making it more immersive and enjoyable.\\n\\nParticularly, we\'ll explore how game polish can be achieved through **game juice**.\\n\\n\\n\\n[Play it here!](https://playcanvas.com/project/1014332/overview/space-rocks)\\n\\n## How it started\\n\\n\\n\\nThis was our starting point before we added game juice. While the game is fully functional and plays well, it lacks the visual and audio effects that would make it truly engaging. As a result, it feels a bit dull and uninteresting.\\n\\nHowever, with the right attention to detail and some careful implementation of game juice, we can transform this basic Asteroids game into something much more exciting and satisfying to play.\\n\\n## What can we improve?\\n\\nTo think about what should have game juice, I always try to narrow down the most common interaction or core mechanic of the game. In our case, that would probably be:\\n\\n- Shooting\\n- Destroying asteroids\\n- Colliding with asteroids\\n\\nWith those three key pieces in mind, let\'s start thinking about how we can improve them.\\n\\n## For shooting\\n\\nIt\'s not very interesting right now:\\n\\n![Basic Shooting](/img/Space-Rocks-image9.gif)\\n\\nIf we want to change that, there\'s a few key things we can do. We can increase the fire rate through a script that allows us to easily control by decreasing the fire cooldown.\\n\\n```javascript\\nGun.attributes.add(\'cooldown\', {\\n type: \'number\',\\n default: 0.25,\\n title: \'Cooldown\',\\n description: \'How long the gun has to wait between firing each bullet\'\\n});\\n\\nGun.prototype.update = function (dt) {\\n this._cooldownTimer -= dt;\\n\\n if (this.app.mouse.isPressed(pc.MOUSEBUTTON_LEFT) && this.canFire()) {\\n this.fireBullet();\\n }\\n};\\n```\\n\\nIn fact, while we\'re at it, let\'s make shooting a bit more unpredictable. Let\'s add some spread to our shots!\\n\\n```javascript\\nGun.attributes.add(\'spread\', {\\n type: \'number\',\\n default: 10,\\n title: \'Bullet Spread\',\\n description: \'Up to how many degrees each bullet should vary in Y rotation.\'\\n});\\n\\nGun.prototype.applySpreadOn = function (bullet) {\\n var rotation = this.entity.getEulerAngles();\\n rotation.y += getRandomDeviation(this.spread);\\n bullet.setEulerAngles(rotation);\\n};\\n```\\n\\nA simple but impactful change! Here\'s how it looks with values I put in for some fun:\\n\\n![Shooting Spread Effect](/img/Space-Rocks-image7.gif)\\n\\nI highly encourage you to play with these values to see what\'s fun for you!\\n\\nIt\'s getting better, but still not there. Let\'s think about more visual aspects now. What more can we do to make it more visually appealing?\\n\\nPlayCanvas has a nice feature that allows you to have tons of lights in your scene with very little performance impact! It\'s called \u2728 Clustered Lighting \u2728.\\n\\n
This week, we've improved your Dashboard, Projects and Profile pages and now have a full introductory video series to make PlayCanvas more accessible than ever.
Despite a tide of sickness this week we still have a great list of updates for all you PlayCanvasers! What would be the phrase you use to describe someone who uses PlayCanvas? I don’t know... anyway, the updates for this week.
This week, we've improved your Dashboard, Projects and Profile pages and now have a full introductory video series to make PlayCanvas more accessible than ever.
Despite a tide of sickness this week we still have a great list of updates for all you PlayCanvasers! What would be the phrase you use to describe someone who uses PlayCanvas? I don’t know... anyway, the updates for this week.