Lumberyard Release Notes – Beta 1.2
For the most up-to-date release notes and documentation, see the Amazon Lumberyard documentation landing page.
With Lumberyard Beta 1.2, we’re bringing in hundreds of new features, improvements, and fixes. As we continue to improve Lumberyard, we want to thank everyone in our developer community. Without your participation in the forums, your messages, and your bug reports, Lumberyard 1.2 wouldn’t be as strong as it is.
Lumberyard Launcher is now Setup Assistant – New name, same great functionality
Lumberyard Launcher has been renamed to Setup Assistant. The Setup Assistant ensures you have the necessary runtime software and SDKs installed to successfully run Lumberyard. The Setup Assistant detects missing components and allows you to install those and other software required for your role on a game team. Run SetupAssistant.exe from the \dev\Bin64 folder. For more information, see “Using Setup Assistant to Set up Your Development Environment” in the Lumberyard User Guide.
Audio Tutorial – Get started with integrating sounds in your Lumberyard project
Use the new audio tutorial level to learn the basics of implementing sounds in Lumberyard using the Audio Controls Editor, create a simple ambient sound using Wwise LTX, and control when and where sounds play in your level. The new audio tutorial level is located in the GettingStarted level set and includes updated sound banks and sample content. For more information, see the Audio section on the Amazon GameDev Tutorials page.
Preview Systems and Tools
Mobile Support – Build games for iOS and Android devices
You can use Lumberyard to build games for iOS devices (iPhone 6s, iPhone 6s Plus, iPad Air 2, and iPad Pro) and Android devices (Nvidia Shield, Samsung Galaxy Note 5, and Motorola Nexus 6). Added features and functionality include:
• A FeatureTests sample project (located in the \lumberyard\dev\FeatureTests directory) that demonstrates a variety of rendering and touch input features. You can use this sample project to learn how to apply these features to your applications.
• Configuration variables to restrict render target resolutions so you can adjust the resolution and increase frame rates as needed.
• Process Life Management support so your applications can handle operating system messages (for example, phone calls, low power, minimize, and maximize).
• Ability to pack Android asset files into the APK so you can distribute your applications to other users.
• Mac OS X version of the Asset Processor, which enables VFS support and allows for faster iteration times during development and testing of your applications.
For more information, see “Android Support” and “iOS Support” in the Lumberyard User Guide.
Network Binding for Components – Create components that can be bound and synchronized over the network
The network binding framework simplifies the process to bind and unbind components to the network.
• Implement the NetBindable interface for components that require network synchronization.
• Add the NetBindingComponent to enable network synchronization for an entity.
• The NetBindingComponent and NetBindable interface interacts on the entity to create and bind them to the replica chunks.
Particle Editor – Create more detailed particle effects with lower performance impact
The Particle Effects system allows you to create and simulate visual effects such as explosions, fire, and sparks. This advanced system includes playback controls, a gradient editor, a color picker, and color libraries. Added features and functionality include:
• Multiple library support for the Particle Editor, including the ability to load, view, search, and modify multiple particle libraries at once. This allows you to easily manage groups of effects in one location.
• GPU particle rendering, which enables particles to be simulated on the GPU and allows you to spawn more particles than the CPU type. You can create particle effects with more detail without a large performance hit. GPU particles also respect intra-emitter sorting for greater visual quality interactions with each other and the environment.
UI Animation System – Animate properties on UI components
The UI Animation system allows you to animate certain properties on UI components, including custom UI components. You can access the UI Animation window from the View menu in the UI Editor. The UI Animation interface is similar to Track View, with key frame animation and track and curve editors. You can save animations with the UI canvas and play them using flow graph or C++.
Added features and functionality include:
• Checkbox UI component and prefab, which allows you to author check box controls in UI canvases. You can also customize the background and on/off graphics.
• Slider UI component and prefab, which allows you to author slider controls in UI canvases. Sliders work at any orientation, and you can customize the background, track, fill, and manipulator graphics.
• Ability to specify a reference canvas size in the UI Editor, and support for zoom and pan functionality. The toolbar now provides a list of common device resolutions. You can add resolution presets to this list using a JSON file, or set custom resolutions in the UI Editor.
For more information, see “UI System” in the Lumberyard User Guide.
Updates to Lumberyard systems and functionality include:
• The Asset Processor now stores log files in a logs subfolder (located in the same location as the Asset Processor executable file). These logs include detailed information that you can use to diagnose issues in the Asset Processor.
• The Asset Processor now recognizes when copies of the tool are stored in different locations for different projects on the same machine. If you attempt to run Lumberyard Editor while the Asset Processor from a different branch or version of Lumberyard is running, you will receive notification and the option to run the correct Asset Processor or exit the old version. This helps to prevent connection to and communication with the incorrect Asset Processor.
• To allow you to get started while assets compile in the background, the Asset Processor now supports priorities assigned to asset types to compile in the configuration file. By default meshes and animations are preferred over textures.
• A new algorithm is now used to order the Asset Processor’s build queue and dynamically reorder the queue based on the connected platforms and the assets requested by these platforms. Unconnected platforms have a lower priority than connected ones.
• The default audio error logging verbosity is now set to Errors & Warnings to increase visibility.
• Added a flow graph node to control Audio components.
• Added a method to stop all sounds to the audio proxy.
CLOUD CANVAS RESOURCE MANAGEMENT
• To help reduce confusion about their purpose, removed the Development deployment and Hello World feature from the default project.
• Deployment stacks are no longer created under the project stack. This change allows you to create, update, and delete deployments without risking changes to other deployments.
COMPONENT ENTITY SYSTEM
• Added the ability to push unrelated entities with instanced entities to a slice asset.
• The Entity Outliner can now show multiple components of the same type.
• The FBX Importer now automatically converts FBX units to meters. This allows you to use scenes from different content creation packages because the content is automatically scaled logically upon import.
• The FBX Importer now reads Up-Axis orientation data. This allows you to use scenes from different content creation packages because the content is automatically oriented logically upon import.
• Changed the command that is used to start the Amazon GameLift server from start_lobby to gamelift_start_server.
• Added support for idle timeout in all modes. Idle timeout is disabled by default. To enable idle timeout for Amazon GameLift, you can add +sv_idle_seconds 600 to your server’s command line in the Amazon GameLift dashboard.
• Removed the GridMateGameLift static library and moved all Amazon GameLift code in the Multiplayer Project to the Amazon GameLift Gem.
• Changed the include paths for Amazon GameLift session header files from GridMateGameLift/Session/… to GameLift/Session/…
• The installer now automatically installs the Visual C++ Redistributable Packages for Visual Studio 2013, if it is not already on your machine.
• To help provide clarity, the installer now clearly states the build version that will be installed.
• To help improve functionality, the installer now reports metrics when certain steps are completed.
• Improved the error messages for configuring an Android project to help diagnose problems.
• Added support for the Android devices Samsung Galaxy Note 5 and Motorola Nexus 6.
• Created a separate download package for iOS developers to help with line ending problems in JSON files.
• Various updates for iOS include exposing global blending weight and fixing VisArea bugs.
• Improved the Xcode project generation for iOS by using rsync to copy assets.
• Added support for enabling r_VisAreaClipLightsPerPixel in GMEM for iOS.
• Created a Gem for GridMate GameLift integration. This Gem contributes to Lumberyard’s modular approach, allowing you to more easily customize the engine for your needs. You can optionally include this Gem in your Lumberyard game project.
• Disabled the Connect and Host flow graph nodes for the Multiplayer Gem.
• Added the ability to search for Amazon GameLift sessions by game instance ID. This enables you to create a custom matchmaking service with your game hosted by Amazon GameLift.
• Added support to the GridMate API for reusing EC2 instances in Amazon GameLift, which removes the need to spin up a new instance for every game session.
• Modified replica initialization to take a debug name.
• Updated AzFramework to require GridMate. On Xbox, GridMate requires winsock (ws2_32.lib) to link in. On Windows, GridMate links in using a pragma in code.
• Removed support for Windows XP and earlier by updating the _WIN32_WINNT version to 0x6000 (Windows Vista), and removing the unnecessary inet_ntop() implementation.
• Modified UpdateFromChunk to call per chunk and not per replica.
PROJECT CONFIGURATOR – Various updates include adding metrics reporting, ensuring the ProjectConfigurator.log file is saved to the engine root, and updating the project template to match the latest changes to the Empty Template.
• The Twitch:JoinIn:CreateLink flow graph node now includes an Error port, which is signaled if the link was not created successfully. The GameName port was removed; the game name is now copied from the sys_game_name console variable.
• You can now use the joinin_uriScheme console variable to set the URI scheme for the JoinIn link. The default value is game.
• You can now use the chatPlay_GroupServerList console variable to set the list of group chat servers and ports.
• In the Samples Project, the UIDemo level was renamed to UIEditor_Sample.
• Removed the UiDemo Gem and added the functionality to the Samples Project.
• Added the UiInitializationBus to help simplify the process of writing custom UI components that require data initialization after loading a canvas in-game.
• In the File menu, New has been renamed to New Canvas.
• In the component properties, the Selected state has been renamed to Hover.
• In the Properties pane, the Components button has been renamed to Add Component and is now located at the top of the pane.
• Added the ability to remove components by right-clicking the component.
• Added the flow graph nodes Ui:Element:SetIsEnabled and UI:Interactable:SetIsHandlingEvents.
• Added the image types Stretched to Fit and Stretched to Fill to the Image component. These image types maintain the aspect ratio of the texture when the element is a different aspect ratio.
• You can now show the anchor preset in use by using the icon to the right of the anchor values in the Anchor properties.
• Renamed the following parts of EBus for clarity:
o EBusEventGroupContainerTypes renamed to EBusHandlerPolicy
o EBBCT_SINGLE renamed to EBusHandlerPolicy::Single
o EBBCT_MULTI renamed to EBusHandlerPolicy::Multiple
o EBBCT_MULTI_ORD renamed to EBusHandlerPolicy::MultipleAndOrdered
o EBusContainerTypes renamed to EBusAddressPolicy
o EBCT_SINGLE renamed to EBusAddressPolicy::Single
o EBCT_ID_UNORDERED renamed to EBusAddressPolicy::ById
o EBCT_ID_ORDERED renamed to EBusAddressPolicy::ByIdAndOrdered
• Updated EBus to declare traits as follows:
static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::ById;
static const AZ::EBusHandlerPolicy HandlerPolicy = AZ::EBusHandlerPolicy::Single;
• Various EBus updates include adding script bindings, removing “Listener,” and improved documentation.
• Updated the Lumberyard Waf build system (lmbr_waf) QT tool to resemble the Waf QT5 version.
• In Lumberyard Editor, you can now opt out of sending metrics by clicking File, Global Preferences, Editor Settings, and selecting the opt-out check box.