Lightning October 2022 release

It is time again! Time for another quarterly release! If you've been following the Lightning project you might remember we've switched to a quarterly release schedule. This provides more predictability for new features or non-critical bug fixes. Blocking or emergency fixes will still be provided by patch releases on a "as needed" basis.

Please find more information for the features and fixes of "October 2022" in the text below. Our next release is scheduled for January 2023!

Important features

Texture compression

A big thanks to our friends at REDSpace for a great contribution to Texture Compression on Lightning! Thanks itsjamie! Texture compression allows Lightning to handle compressed images on the client device. Most devices support ETC1 natively from the GPU allowing fast hardware accelerated decompression of the textures on rendering.

So how does this help? Well GPU Graphics memory has its limits and by enabling texture compression it allows the runtime to store more textures onto the GPU memory. Requiring less texture upload or garbage collection eventually turning into more performance!

For more information regarding texture compression please see a blurb here

VRAM usage

Another great contribution by the REDSpace team! Open source at it's finest, thanks Ian Smith for contributing VRAM usage functionality to Lightning! When creating images/elements Lightning generates textures onto the GPU, these are uploaded and consume "memory". Traditionally Lightning 2.x counts the amount of memory used by the amount of pixels uploaded to the GPU. More pixels == more memory, allowing to set the Garbage Collection limits at an amount of uploaded pixels. Simple right? Yeah just not very human friendly and kinda hard to grasp since the amount of memory available on a GPU is typically expressed in Bytes (MBytes/GBytes) and not in pixels.

Trying to map the amount of pixels used to the actual memory consumed is kind of hard to do before hand. The changes to VRAM usage makes this a lot easier! Alongside of "pixels" Lightning will now keep track of the amount of Bytes stored onto the GPU.

This will be exposed on a Stage variable 'usedVram'. Additionally 'usedVramAlpha' and 'usedVramNonAlpha' are available too.

TypeScript in the CLI

Wait. How does a command line interface require TypeScript? Have no fear, the CLI will have the same syntax as you're used to. However the CLI allows you to start a Lightning project from scratch. This now comes in two flavors! You'll be asked whether or not you want to start a plain JavaScript project or a TypeScript project:

CLI

And e'voila your freshly created new project will be based on TypeScript. Note general TypeScript support to Lightning has been added in the July 22 release! For more information please see: https://lightningjs.io/articles/typescript/

Deprecation of the lng upload command

The Lightning project is originally created as part of Metrological for their Application Store product. However as the Metrological App Store and Lightning continue to evolve we're separating the two projects. The Lightning-SDK already transitioned starting version v5.0.0 and up, part of the Platform Plugins for Metrological has moved to their own Metrological-SDK.

Similarly the 'lng upload' function will move to its own upload command in the Jan '23 release. During the transition phase the 'lng upload' will continue to work however it will print a deprecation warning and links to the new location. Providing developers with ample time to move over to the new way of working.

Release information

Lightning core: v2.8.0

Lightning SDK: v5.2.0

Lightning CLI: v2.9.0

That's all! Happy coding and see you in January 2023 for another release!