Register

Release 9.220

Version 9 Prototype

August 04, 2021

Foundry Virtual Tabletop - Version 9 Prototype 1 Update Notes

Release Notes for Foundry Virtual Tabletop Version 9 Prototype 1
Welcome to the Foundry Virtual Tabletop update notes for Release Version 9 Prototype 1.

Hello and welcome to the exciting release of Foundry Virtual Tabletop Version 9 Prototype 1, the very first release in the Version 9 series of updates. The major themes that we'll be focusing on in Version 9 include sweeping changes for Lighting and Vision rendering, support for our first implementation of support for Cards and Decks (the highly sought after feature voted for by our Patreon supporters) and much more!

WARNING: Updates on the Prototype channel provide the implementation of major new features which are likely to introduce unforeseen bugs, breakages to existing game systems or modules, or other problems which will be disruptive to the usage of the software. Do not install this update unless you are doing so for the specific purposes of testing, it is not intended for use in 'live game' scenarios. The purpose of Prototype builds are to allow new experimental features to be tested and to help developers to begin the process of updating packages which are impacted by these changes. If you chose to update to this version you expose yourself to serious risk of having a bad experience. Please take this warning to heart.

Be certain to carefully back up any critical user data before installing this update.

Update Highlights

For Version 9 Prototype 1 we returned to the Canvas Lighting and Vision engine that last saw major upgrades in the Version 7 series of updates. The existing quadtree algorithmic approach to vision calculation brought us major improvements, but was not without its faults. V9p1 ushers in a new approach to lighting and vision rendering which is both more performant and more accurate compared to Version 7. Version 9 also introduces a suite of new "Adaptive Lighting" features, which completely change the way light is rendered and provide new, more natural lighting effects.

Adaptive Lighting

Allow us to introduce a brand new system we are calling "Adaptive Lighting." Replacing the previous multiplicative method of light blending, Adaptive Lighting defers the light source rendering until the canvas has rendered all other layers. By doing this 'deferred' lighting pass, the light is able to adapt to the color of what is below it, and allows multiple light sources of differing colors to smoothly blend. The result is that light sources provide a much more natural and clear appearance of light as it interacts with tokens and map textures. We'd like to thank SecretFire (who some of you may know from the Token Magic FX module) for making amazing and ongoing contributions to this effort and for the insight they have provided which helped to make this possible.

Adaptive lighting gave us the opportunity to implement a number of new additional features for lights, including:

New Light Animations

With the addition of all the awesome advanced features of Adaptive Lighting, we were able to implement some new lighting animations and some new configuraiton options for animated lights. In addition to the new light animations listed below, Animation Speed can now be set to 0 to stop the animation but provide a light source with the appearance of the effect, and a Reverse Direction toggle allows you to invert the behaviour of the animation.

Vision Performance and Accuracy

The Lighting and Vision engine now uses a new method of polygon computation, a "Radial Sweep" approach. By eliminating unnecessary rays we are now able to calculate vision more accurately and with significantly improved performance, which allowed us to also improve performance in a number of other adjacent areas of the canvas code. Special thanks goes out to Stäbchenfisch whose module Lichtgeschwindigkeit helped inspire this approach. This new method of vision calculation reduces the amount of processing overhead for line of sight polygons, wall detection and collision, fog of war rendering, and overhead tile occlusion. This set of approaches for improved rendering is also being leveraged to cull the rendering of canvas objects which aren't within the current field of view for some significant performance improvements.

Canvas objects which are obscured (for example: lights below Roof Tiles) are now rendered more performantly and Overhead Tiles themselves now benefit from better detection of shadows and other partially transparent pixels. Map notes which are not within the visible canvas space for a token are now no longer rendered. Lastly, an improvement to the canvas overall: HUD elements such as labels or controls now render above other canvas elements intuitively, allowing for these elements to not be obscured by fog of war or blocked by the rendering of of canvas darkness.

New Approach to Versioning

You may have noticed that we've stopped using the 0.x.y labels for our versions! After much consideration, we have chosen to change our approach to versioning to something a little more specific to Foundry Virtual Tabletop and its phases of development. You can find out more about it here. This will change the way version information is displayed, but also provides our community developers with key benefits: Packages can now have their compatibility set to an entire Version, reducing the need to update compatibility flags as frequently, and our new approach to versioning provides an expanded period for community developers to give feedback on API changes.

Breaking Changes

Documents and Data

Interface and Applications

Other Changes

New Features

Architecture and Infrastructure

The Game Canvas

Interface and Applications

API Improvements

Documents and Data

The Game Canvas

Documentation

Bug Fixes

Documents and Data

The Game Canvas