Lumberyard Release Notes – Beta 1.27 (December 2020) - Lumberyard Release Notes

Lumberyard Release Notes – Beta 1.27 (December 2020)

Is it really almost 2021? Where did the year go? Over here, in the game-loving country of Lumberyardia, time really flew! Still, we gotta say, it feels good to get the Lumberyard Beta 1.27 release out of the door and in your hands, particularly because we’ve got a whole plethora of parcels for you in the sleigh, including:

  • The experimental release of NVIDIA Blast support! LET’S BREAK STUFF!

  • Advanced NVIDIA Cloth features. LET’S PUT CAPES ON THINGS!

  • Twitch ChatPlay and Websockets Gem updates. LET’S TALK TO FRIENDS!

  • Improved GameLift support. LET’S HOST THINGS IN THE CLOUD! (Well, let’s pick up some of the goodness from recent GameLift C++ SDK releases, at least.)

  • Improved Setup and Installation. LET’S…​uh. LET’S CONFIGURE LUMBERYARD BETTER?

Hey, we’re excited, okay?

Plus, we’re proud to announce that Lumberyard Beta 1.27 contains the General Availability (GA) releases of two of the major features we’ve been working on throughout the year: the PhysX replacement for CryPhysics (plus new physics features) and the new Lumberyard UI 2.0!

Now, we suspect it doesn’t feel exactly like the holidays because you’ve been unwrapping these gifts for awhile, and you’ve been providing us feedback on how to improve them all along the way. So, maybe these presents were for us, too? Our customers rock!

Lastly, thank you to our customers and community for your wonderful support and advisement throughout the year. We hope you have an amazing 2021, where all your code compiles clean on the first try, your asset rigs are flawless straight out of the pipeline, your level scripts flow beautifully, and your games bring happiness to everyone who plays them. We’ll be here for you in 2021 as well with more exciting announcements and features, so keep watching this space and using Lumberyard!

Keep sending feedback to our forums and to lumberyard-feedback@amazon.com! For the latest Lumberyard updates, follow us on Twitter, Facebook, and our blog.

Looking to get v1.27 of Amazon Lumberyard, or interested in giving it a spin? Download it here.

New to Lumberyard? Watch Learn Lumberyard in 20 Minutes. (And maybe subscribe to our official Lumberyard YouTube channel, too!)

Already a user? Share your feedback in the Amazon Lumberyard forums.

Lumberyard 1.27 Beta Visual Studio Requirements
  • Amazon Lumberyard Beta 1.27 now supports up to Visual Studio 2017 version 15.9.27 or 2019 version 16.7.3, including the Community Edition for both.

  • The minimum required versions are:

    • Visual Studio 2017 (any Edition): version 15.9.14, or:

    • Visual Studio 2019 (any Edition): version 16.2.4

NOTE: There are some issues that arise when using the MSVC compiler shipped with Visual Studio 2019 versions 16.8, 16.8.1, and 16.8.2. For more details, check out the Lumberyard 1.27 Known Issues.


            1 27 teaser 2

Community Contributions

As ever, one of the things that makes Lumberyard great is your code contributions! Before we dig into the official updates, let’s check out some of the great community member submissions we incorporated in 1.27. Y’all were busy!

  ->DataElement(0, &MyClass::m_colour, "Some Color Value", "")
  ->Attribute("AlphaChannel", true)

We also had community user Ahmad Karami create this great video demonstrating Lumberyard’s features:

Ahmad has been making video tutorials about his experiences with and knowledge of Lumberyard, so check out his channel.

To our wonderful community and developers in 2021: Thank you for helping us improve Lumberyard and for your ongoing support! You rock!

Installation Notes

Important

If you are using Visual Studio 2017, we recommend installing the Visual Studio C++ Redistributables for Visual Studio 2012 and Visual Studio 2019 before installing Lumberyard. See Amazon Lumberyard system requirements in the Welcome Guide for installation information.

  • If you are using Visual Studio 2017, use the Visual Studio 2019 version of Project Configurator (\dev\Bin64vc142\ProjectConfigurator.exe) to create and switch projects.

Highlights

Now, let’s review what’s shipping this time around. Here’s a sampling of our favorite new features and improvements found in Lumberyard Beta 1.27.

Physics

With Lumberyard Beta 1.27, Physics is now in General Availability (GA)! We’ve been working on this for quite some time, and you can get more details in this recent blog post.

NVIDIA Blast Support

Lumberyard Physics now supports NVIDIA Blast for object destruction! Explosions and physical damage, as we all know, are essential to balance the forces of creation that we harness for game development. We’ve had fun breaking things and blowing things up as we worked on this feature, and now you can share in the asset carnage as well!


                  nvidia blast rabbitbreak

(Look! We’ve programmatically turned your chocolate holiday candy into convenient shareable form with a destruction mesh and a stress impulse!)

Additionally, you can create Blast Material libraries just as you would for other Material types, and work with them directly in Lumberyard.


                  nvidia blast in ly 1

To use this new feature, enable the NVIDIA Blast Gem from the Project Configurator.

For more details on working with destructible meshes and NVIDIA Blast in Lumberyard 1.27, read the new NVIDIA Blast docs.

We’ve also added support for automating the import of NVIDIA Blast assets with Python. The new Python Asset Builder Gem automatically imports the .fbx and .blast files that define your destruction meshes, and then processes them for use in Lumberyard and your game.


                  nvidia blast pab gem

(Check it out, Ma! No manual import steps necessary!)

For more details on the Python Asset Builder Gem, read the documentation here.

Advanced NVIDIA Cloth Physics

After a few releases, the NVIDIA Cloth Gem is out of the "experimental" phase and now in full preview! For us in Lumberyard, that means that we’re committed to getting it to a final release - and for you, it means that we’re locking down on features and driving them to production quality, so give it a shot!

(We also beefed up performance quite a bit by allowing cloth simulations to run in parallel on available CPU cores. No reason to not get fancy with the fabrics now, eh?)

Building atop our NVIDIA Cloth integration work in prior releases, we’re proud to announce support for more advanced cloth physics features, such as complex mesh behaviors and constraints, as well as significant performance optimizations. It’s a bit of a list, so let’s review…​

  • We now have a public API for the functionality that we expose in the NvCloth Gem. With this API, Lumberyard systems and gems have access to cloth simulation functionality, and so does your own code. You can check out the APIs on GitHub here.

  • Users can work with complex meshes for cloth simulation. Our solution now applies a simplification step that removes duplicated vertices (often added for texture rendering) from the mesh conversion. This results in a physical mesh with the correct topology for cloth simulation.

  • Users can now choose the color channel that Lumberyard uses to get custom cloth data during an import. For example, you could use the color channel to provide cloth weight information, or values for other cloth physics properties. This choice gives you more control over how to author cloth data in digital content creation tools.

  • Users can add both motion and backstop constraints to cloth meshes (using digital content creation tools), and import those constraints into Lumberyard.

  • Users can choose if cloth colliders interact (or not) with static particles during simulation.

  • Users can choose to remove static triangles to simplify the mesh and gain additional performance.

  • Cloth now handles character spawns and teleportation nicely. Nothing’s worse than putting on your fanciest dress cape and then having it get all knotted up by a common teleporter. Ugh!

  • Profiling hooks have been added to capture cloth simulation performance with RAD Telemetry Gem.

Want details? Read more in our NVIDIA Cloth documentation here.

Websockets Gem

We have a brand new Gem that will be of interest to anyone wanting to use the WebSocket protocol in their Lumberyard systems. The Websockets Gem is a new feature for Lumberyard that provides an easy way to create websocket clients for Lumberyard games and projects. With this gem, you can quickly and easily connect to WebSocket servers and take advantage of the full-duplex communication that they provide. On Windows and Linux, the gem uses a well-known WebSocket library, WebSocket++, which is included in the gem.

For more details on the Websockets Gem, read the Websockets Gem documentation.

Updated Twitch ChatPlay Support

We’ve updated our Twitch ChatPlay system to use the new Websockets Gem so that any Lumberyard system can connect directly with the Twitch IRC Chat! This gem replaces the older ChatPlay gem. With this gem, Lumberyard games can join a chat stream and interact with viewers, listening to messages and responding to the stream via Script Canvas or Lua scripts. For example, your game could be used by a streamer to allow viewers to vote on changes that will directly impact gameplay!

For more details on changes to the Twitch ChatPlay Gem, read the updated documentation.

UI 2.0 General Availability

Ah, the classic Lumberyard UI. You’ve served us well, and now it’s time for you to depart for your well-earned rest in the sunlit fields of our developer memories. With Lumberyard Beta 1.27, UI 2.0 is now in GA, and becomes the default user interface experience. We’ve made over 160 improvements in the run-up to this release based on your feedback, so if you ran into, ah, eccentricities using the new UI in 1.26, there’s an excellent chance we’ve cleaned it up nicely.

Here’s some of the bigger improvements:

  • We’ve upgraded Qt support to version 5.15! This resolves many multi-monitor and high DPI issues, and has a lot of (Qt-specific) bug fixes as well. For a full list of changes, read the Qt 5.15 release notes at https://doc.qt.io/qt-5/whatsnew515.html.

  • A customized workspace is a happy workspace! For this release, we added more ways for you to tweak and manage all the windows and editors that you work with on a daily basis. As an example, you can expand your workspace panels and windows just by double-clicking in any open space between the tabs and the window header.

    
                        1 27 ui20 expand workspaces
  • Sliders have received a customer-requested update. With 1.27, sliders show a blue bar indicating the amount of adjustment made. (Previously, the slider bar only showed an indicator on hover. Now you can see where you set your changes at any ol' time.)

    
                        1 27 ui20 expand sliders
  • We made some adjustments to Script Canvas nodes to use the UI 2.0 vector input layout, in order to match the rest of the editor. This includes the new colorized input field labels, as well.

    
                        1 27 ui20 input fields color
  • We made several updates to the Asset Editor tooling, including the display of the current asset file that you’re working with and its on-disk location. We also improved the layout by adding separator bars to allow for the user to understand the separation of content more easily.

    
                        1 27 ui20 asset editor
  • We fixed a really annoying bug where, in some situations, the ScriptCanvas windows title bar would appear offscreen. We’ve adjusted the Script Canvas title bar to make sure it loads on the screen during those situations.

  • We have continued to replace more of our outdated iconography, and converted icons from bitmaps to vector images, particularly to provide a better experience in 4K+ resolutions. This release, we targeted the main window header, the Asset Browser, the WWise audio tools, the Particle Editor, and the Lens Flare Editor.

    Here’s an example from the Lens Flare Editor:

    
                        1 27 ui20 lens flare editor

    And an example of the changes to the Asset Browser icons:

    
                        1 27 ui20 asset browser icons

    Nice, huh?

  • We have addressed a recurring visual error in the Entity Inspector where the main header icons would overlap with the content.

    
                        1 27 ui20 entity inspector
  • We replaced the low quality animated GIF used when assets were loading in the Asset Browser with an animated SVG icon.

    
                        1 27 ui20 asset browser loading
  • Occasionally, the tag close button would overlap adjacent text. We fixed this by scaling the close button to fit the layout.

    
                        1 27 ui20 tag closing
  • You told us loud-and-clear that the unit of measurement labels inside our input fields should be a different color from the editable content. We got it! We adjusted the font color and removed the unit of measurement when typing inside vector input fields. Check it out:

    
                        1 27 ui20 vector input colors
  • Occasionally, the global hover state for folders would turn the folder icon white. We have updated the hover state to fix this. Folders stay the same color, now!

  • The Platform Settings tool and the Deployment tool have been polished up nicely in this release. This refinement includes removing unnecessary ellipses ("…​"), adding secondary tab styles, and improving overall label legibility.

    
                        1 27 ui20 tab fixes
  • We have made further improvements to the Particle Editor UI to clean up alignment, tabs, and header.

  • Some feedback we received from you indicated that disabled states for UI elements were hard to read in some situations. We have adjusted the default button text colors to make sure you can always read the state even when the element is disabled. Let us know if this helps!

  • We have improved the Python Scripting help window. Users can now search across the description for more help with Python Scripting. We have also done some additional UI 2.0 clean up to make content easier to read across table rows so you don’t lose track of what you’re looking at.

    
                        1 27 ui20 python script ui
  • We refactored the Debug and Environment mode settings in 1.27. They now appear in a consistent dropdown menu that shows what is currently active (or not). Previously, these settings were scattered across individual icons, which were hard to identify, and were unclear as to which settings were enabled or not. Perhaps a picture will help make this change more clear:

    
                        1 27 ui20 debug settings ui
  • We made further refinements to our global scrollbar. This time, we tweaked it so that the scrollbar never overlaps any of the buttons or actions you might need. We’ve also made the scrollbar more dynamic by having it conveniently disappear when it is no longer needed, with the content automatically readjusting to fill the space. For all the other fixes and improvements, read Lumberyard 1.27 Bug Fixes!

Dynamic Content Gem Updates

The Dynamic Content Gem (a.k.a. "Cloud Gem Dynamic Content" in Project Configurator) now supports dynamic content versioning. This is an optional feature that you can use to pre-stage and schedule the release of your dynamic content updates. This solves two problems that have been reported to us:

  1. Clients receive errors when packages are in the process of being updated in the Amazon S3 bucket, until the update completes.

  2. There is no quick rollback of an update. New packages have to be uploaded, which impacts availability and mitigation speed.

Using pre-staging and scheduling, players can still download previous versions while the new content is being uploaded, allowing developers to freely upload new versions and only make them available once they are available in S3. And once you’ve enabled the object versioning feature on the content bucket, you can roll-back to any previous version, eliminating the need to re-upload earlier content. Please note that normal S3 pricing applies to each version of an object.

For more details on using this gem and the dynamic content versioning feature, refer to the updated documentation on Updating Dynamic Content.

GameLift Integration

Good news! We’ve upgraded our GameLift Gem to support version 3.4.1 of the GameLift C++ Server SDK, which is part of the overall GameLift SDK 4.0.2 SDK . (Note that the TerminateGameSession API is deprecated in this version.) This SDK is bundled with Lumberyard 1.27.

Additionally, the GameLift Gem now defaults to IPv6 for any GameLift service features when communicating with client platforms that require IPv6 (such as iOS).

Multiplayer Gem

The Multiplayer Gem now defaults to IPv6 for any GridMate network communications on client platforms that require IPv6 (such as iOS).

Cinematics Updates

We’ve updated Cinematics with additions to the components that expose functionality to the Track View, and added new EBus functions to expose more functionality to scripts. Specifically, some Cinematics play tracks can now have asset keys. These keys are assigned an asset that’s used when the Cinematic play track has reached that key in the play track time sequence. For example, an asset key for a mesh component could change an asset (like a texture or effect) initially used by a mesh component to a new one assigned in the asset key at a specific point in the Track View.

Improved Setup and Installation

We’ve made some improvements to the Setup Assistant and Project Configurator UI. Thank you to everyone in the community who provided us feedback!

  • When Lumberyard Editor is built, the desktop icon for it is updated with the version of Visual Studio used to create it. This helps reduce the chance of running the Editor from the wrong Bin64vc directory, which can be a source of customer confusion when launching the Editor and encountering an error message saying that a required gem for the default project was not built.

  • In Setup Assistant, we call out our recommendation to use Visual Studio 2019.

  • If you choose to enable both Visual Studio 2017 and Visual Studio 2019 in Setup Assistant, you will be asked which compiler to use when building from Project Configurator.

Android documentation

The Android documentation got a major face lift! It’s been reorganized and rewritten to focus on helping you to get your Lumberyard projects running on Android devices, and published to the Google Play Store. We’ve tried to make it clearer than ever how different build and asset settings affect how your project runs on Android devices, and which settings are right for you at various stages during development.

As most of our users are on the Windows platform and the most complex part of Android development (working with the Shader Compiler) requires Windows, we’ve chosen to remove any macOS-specific instructions for Android development right now. Don’t worry, they’ll be back! In the meantime, as a macOS developer, you can still follow along if you’re familiar with the following:

  • Know commands in the bash or zsh shell that are equivalent to those used in Windows Command Prompt in our examples

  • Set up your PATH to include Android tools

  • Use lmbr_waf.sh instead of lmbr_waf.bat

  • Change path separators from \ to /

  • Note that Setup Assistant for macOS is located at lumberyard-install-dir/Tools/LmbrSetup/Mac/SetupAssistant

As part of the rewrite, we’ve removed the old Android "Quick Start" materials - setting up your Android environment is too error-prone to just roll up a quick "set up and deploy" topic to get a current project (or even an empty one!) out on a device. If you’re making a new project that only targets Android, follow these articles to get deploying to devices as early as possible.

Documentation

The Lumberyard Docs team has been working this release to add more Welcome Guide tutorials and build upon the initial set released with 1.26. This time, we bring you tutorials that build upon the previous chapters, including:

Be sure to grab the latest tutorial project files, too!

We’ll be taking a little break from tutorials as we ramp up on some much bigger workalthough we might sneak a couple more inbut rest assured: tutorials and samples will become a big part of Lumberyard content development in the coming year!

We’ve added documentation for two recent PhysX features. You can easily create localized and global wind forces that can effect Cloth and other PhysX assets with PhysX wind providers. Build all sorts of interesting dynamic relationships between entities, from simple doors to complex machines with PhysX dynamic joints.

We’ve also added oft-requested new documentation on FBX settings and tools. We hope you like it, because you were very clear when you told us that the existing docs weren’t, well, very clear. Keep sending us feedback!

Feature Deprecations and Removals

(Note on usage: An Amazon Lumberyard feature that is marked as "deprecated" is no longer under development and will be removed from the product at a later date. Features marked as "removed" are no longer present or supported in the noted version.)

The following features have been deprecated with Lumberyard v1.27 and will be removed in a following release.

UI 1.0

  • The old Lumberyard user interface ("1.0") is no longer available. The current UI, 2.0, is the model for Lumberyard UI going forward from this release.

ChatPlay Gem

  • The old ChatPlay Gem is deprecated in Amazon Lumberyard release v1.27. This gem has been replaced by the new Twitch Chat API Gem, which has a dependency on the new Websockets Gem.

Cloud Gem Portal

  • The Cloud Gem Portal remains deprecated in Amazon Lumberyard release v1.27, and will be removed in a coming release.

Resource Compiler Image Tool

  • The Resource Compiler Image tool has been removed in Amazon Lumberyard release v1.27.

More Information