Register

Release 10.260

Version 10 Prototype

March 23, 2022

Foundry Virtual Tabletop - Version 10 Prototype 1 Release Notes

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

At long last, the time has come to show off what we've been working on since Version 9. Users and community developers should be advised that this prototype release of Version 10 contains a lot of Breaking Changes which are par for the course for our prototype updates. Updates during the Prototype phase contain a variety of changes made in the interest of improving the software, including significant changes to our API, which can often be disruptive for community developers. The goal of front-loading the more drastic changes to the very first release in a new version is to provide our awesome development community with the opportunity to begin adapting their content as early as possible and reduce the stress of having to rush out substantial changes later in the development cycle.

For those of you who are not community developers but are interested in checking out some of the new features yourselves, please note: Prototype releases are not intended for use in live games, though if you are determined to do so please be sure to backup your userdata. We cannot say this often enough or loudly enough: If you are going to experiment with prototype releases, perform a backup and disable ALL modules for your world. We cannot be held responsible for any data loss which might occur as a result of third party module breakage.

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 choose 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

This is a large update with a lot of drastic, sweeping changes for portions of our API. A lot of the breaking changes made to the API were done in the interest of clearing technical debt and bringing overall performance improvements. The first release in any Prototype cycle focuses on trying to fit as many of the more drastic and significant changes as we can in order to make the process of adapting community developer packages easier. However, that doesn't mean we aren't laying down groundwork for a bunch of really cool features that we have forthcoming in V10.

DocumentData Refactor

We had one, yes, but what about second Document refactor?

Perhaps the most significant API change inbound in V10, changes to the data schema for Documents bring even further consistency for our Documents framework and provide new means by which Game Systems may define, interact with, and validate data for all Documents. During the intial development phase the opportunity presented itself to shift the previous Document class to become a subclass of the DataModel class. There will be some consequences of this change, but we feel (and after consultation with the FVTT development community, have had that feeling reinforced) that the benefits outweigh the drawbacks. By making this change, we clarify and standardize dependency structure between the DataModel, DataField, and Document classes. In addition, this change allows us to extend methods and features which are currently only available to Documents, granting them to other classes subordinate to DataModel instead. A tertiary benefit of this change is that it removes the awkward Document.data.data structures which previously existed in favour of a more streamlined model. Lastly, this brings a benefit in that it removes a significant amount of duplicated code from a variety of Document related classes, reducing overall technical and maintenance debt in the FVTT codebase.

We have taken steps to mitigate the negative impacts of this refactor, and made headway in creating some automatic migrations in order to further reduce those impacts, but we recognize that this change will not be without some growing pains. We strongly encourage system and module developers to test their packages in V10 Prototype 1 and provide feedback for any unexpected stumbling blocks you may face in getting your package working in V10. Receiving feedback from community developers early in this process will make the transition much more smooth for the broader community, so we look forward to hearing from you.

Tooltips and Tours

No small part of our efforts in V10 are focused on improving the general experience of the software for both long term veterans and new users. We've heard from the community that the software feels somewhat unapproachable at times and we're making efforts to reduce that learning curve. This update brings in a new API which unifies how Tooltips are provided when hovering elements, displaying them in a way that supports localization and provides a cohesive visual appearance. The new tooltips are provided not only for hovering elements in the core software's UI, but can also be leveraged by community developers to unify their appearance with Game Systems and Modules alike.

The new Tours framework is the first step to bringing a new level of introduction and documentation to Foundry VTT. Our vision for the Tours API is that it will provide a new approach to educating users on aspects of the core software. We foresee a future where Foundry Virtual Tabletop comes with interactive tutorials on every aspect of using the software, where users can use the software itself to help them bridge the gap between 'new user' and 'subject matter expert'. The Tours framework brings us closer to achieving that goal and the best part of this facet of development for V10 is that it will be extensible- allowing community developers to leverage this API to provide similar guided tutorials for their game systems and modules.

Canvas and Lighting and Interaction Tools (oh my!)

While drastic changes to lighting and vision are not on the menu for V10 having just gotten a major facelift in V9, it wouldn't be an FVTT update if we didn't tweak the lighting engine a little. This update introduces further performance improvements to the way light sources are handled by using a new polygon-mesh based approach to vertex geometry. Several programmatic improvements have also been brought to occlusion masks for Overhead Tiles.

In addition, we managed to smuggle a little bonus into V10 in the form of new canvas interaction tools, bringing ability for average users to 'ping' the canvas by holding left click with some pretty clean looking animations. GMs may also force user cameras to reposition, drawing attention to a particular point by shift-clicking the canvas. This has long been a feature provided by multiple modules and one of the earliest features conceived for FVTT which we're glad to finally offer an implementation of.

In addition to the three key points above, we'd like to take a moment to highlight some honourable mentions:

Breaking Changes

Architecture and Infrastructure

Documents and Data

Interface and Applications

The Game Canvas

New Features

Architecture and Infrastructure

Documents and Data

Interface and Applications

The Game Canvas

Bug Fixes

Architecture and Infrastructure

Documents and Data

The Game Canvas

Interface and Applications

Documentation Improvements