From 30d6ef744292f6e71352a6d5901782ab3de90157 Mon Sep 17 00:00:00 2001 From: Will Eastcott Date: Thu, 22 Aug 2024 15:37:34 +0100 Subject: [PATCH 1/2] Add Engine 2 announcement --- ...2024-08-22-playcanvas-engine-hits-2-0-0.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 blog/2024-08-22-playcanvas-engine-hits-2-0-0.md diff --git a/blog/2024-08-22-playcanvas-engine-hits-2-0-0.md b/blog/2024-08-22-playcanvas-engine-hits-2-0-0.md new file mode 100644 index 000000000..f43c91be4 --- /dev/null +++ b/blog/2024-08-22-playcanvas-engine-hits-2-0-0.md @@ -0,0 +1,49 @@ +--- +authors: will +slug: playcanvas-engine-hits-2-0-0 +title: "PlayCanvas Engine Hits 2.0.0" +tags: + - engine +--- + +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! For the full details, visit our Github: + +[**RELEASE NOTES**](https://github.com/playcanvas/engine/releases/tag/v2.0.0) + +It'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: + +* October 2010: Coding of the Engine begins! +* 24 October 2011: [Engine migrated to GitHub](https://github.com/playcanvas/engine/commit/e5bf014e738d5bfc92ece1d6c0f50ad71bf4dd90) +* 4 June 2014: [Engine goes open source](https://blog.playcanvas.com/playcanvas-goes-open-source/) +* 24 April 2018: [Engine hits 1.0.0](https://blog.playcanvas.com/playcanvas-engine-reaches-1-0-0/) + +Back in 2018, the Engine was bumped to 1.0.0 because we adhere to [semantic versioning](https://semver.org/) which dictates: + +> 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โ€™re worrying a lot about backward compatibility, you should probably already be 1.0.0. + +With 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! + +### Why Bump to 2.0.0 + +Semantic 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". + +:::info[cruft _noun_ `INFORMAL - COMPUTING`] + +badly designed, unnecessarily complicated, or unwanted code or software. + +::: + +It 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. ๐Ÿงน Here are some highlights of what we removed: + +* **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. So long WebGL 1 - it's been fun! ๐Ÿ‘‹ +* **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. +* **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. +* **...and several other public API symbols.** What we are left with is a cleaner, tighter codebase that can power us into the future! + +### What if my Project Breaks + +Never 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. + +Editor 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. New projects will automatically use 2.0.0. We will release more information about the transition for Editor users closer to the time. + +In 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: From 2c10117bd8c50dce6d426c1fc4066c549fb8142c Mon Sep 17 00:00:00 2001 From: Will Eastcott Date: Thu, 22 Aug 2024 15:43:47 +0100 Subject: [PATCH 2/2] Fixes --- blog/2024-08-22-playcanvas-engine-hits-2-0-0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blog/2024-08-22-playcanvas-engine-hits-2-0-0.md b/blog/2024-08-22-playcanvas-engine-hits-2-0-0.md index f43c91be4..752f1d525 100644 --- a/blog/2024-08-22-playcanvas-engine-hits-2-0-0.md +++ b/blog/2024-08-22-playcanvas-engine-hits-2-0-0.md @@ -6,7 +6,7 @@ tags: - engine --- -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! For the full details, visit our Github: +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! For the full details, visit our GitHub: [**RELEASE NOTES**](https://github.com/playcanvas/engine/releases/tag/v2.0.0) @@ -35,7 +35,7 @@ badly designed, unnecessarily complicated, or unwanted code or software. It 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. ๐Ÿงน Here are some highlights of what we removed: -* **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. So long WebGL 1 - it's been fun! ๐Ÿ‘‹ +* **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! ๐Ÿ‘‹ * **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. * **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. * **...and several other public API symbols.** What we are left with is a cleaner, tighter codebase that can power us into the future!