Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
13. May 2016


Amazon just added Substance Integration to their Lumberyard game engine in the form of an extension.  Lumberyard is Amazon’s fork of CryEngine released several months ago.  You can see Lumberyard in action in this video.  Substance is a pair of products from Allegrothimic composed of Substance Designer and Substance Painter.  They enable you to recreate real world materials for physically based rendering (PBR) and is proving extremely popular among texture artists.  Substance Painter was featured in our GameDev Toolbox series earlier if you want more details.


Amazon announced the new extension on their blog:

To enable the Lumberyard Substance Editor tool, go to your Project Settings inside the Project Configurator and select “Enable Packages” on the top right. This will let you enable the Substance extension for your project.

Working with .sbsar files within the Lumberyard Substance Editor grants many advantages over standard workflows. Ceramic tile textures, for example, could have sliders for adjusting the size of tiles, how they’re arranged together, and how they’re lined up. In the editor, you can make changes to these variables and see the results update in real time. To do this, use the editor to import your .sbsar file, which will then generate a .smtl (our file format for Lumberyard Substance materials) and .sub files (Substance textures). When selecting your .sbsar file, you’ll see your Substance file’s exposed settings as well as all the textures that can be generated from it.

From the Lumberyard Substance Editor, you can also change parameters at run-time using Lumberyard’s Flow Graph. As you configure a texture applied to an object in your game world, Lumberyard will show you real-time previews of the end result, both from the editor window and on the actual object. Substance works within Lumberyard as a project extension, which includes the ability to use the Substance API, the Lumberyard Substance Editor plugin, and Flow Graph nodes.

GameDev News

29. April 2016


It was only a few months back that Amazon launched Lumberyard, their CryEngine powered game engine.  In March they released Lumberyard 1.1 then earlier this week they just released Lumberyard 1.2.  At least out of theZombiesEditor gate they are keep the updates coming at a good pace.


So what exactly is in Lumberyard 1.2?

  • new audio tutorial on integrating Wwise audio in Lumberyard
  • extended mobile support from 1.1.  More iOS and Android devices added included iPhone 6 series, Air2 and iPad Pro, with Note 5 and Nexus 6 added on the Android side )
  • network bindings for components enabling network synchronization
  • improve particle editor including library support, GPU particle rendering, advanced playback controls, a gradient editor and more
  • UI Animation system enabling you to animate certain properties of UI components.

That’s the new features, then comes the rather massive list of changes and features.

• 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.
• 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.
• 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
• 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
• 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
• 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 =
static const AZ::EBusHandlerPolicy HandlerPolicy =
• Various EBus updates include adding script bindings, removing “Listener,” and improved
• Updated the Lumberyard Waf build system (lmbr_waf) QT tool to resemble the Waf QT5
• 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.
Lumberyard Beta 1.2 includes the following fixes:
AI – The editor no longer crashes when:
• Attempting to grab an AI human in-game in the GameSDK project. This error occurred for AI
humans that had a nonexistent grab type specified in the entity settings.
• Saving CGF files for certain brush objects.
• Fixed an issue that caused the Asset Processor batch file to hang when attempting to cancel by
pressing Ctrl+C.
• Fixed an issue that prevented Lumberyard Editor from launching if the Asset Processor from a
previous build is running in the background.
• Fixed an issue that caused exported geometry (CGF and i_caf files) from 3D Studio Max to
appear as failed in the Asset Processor.
• Fixed a bug that caused numerous Asset Processor icons to appear in the system tray after
switching projects or closing tasks.
• Fixed an issue that prevented the Asset Processor from identifying changes to
sys_game_folder in the bootstrap.cfg file.
AUDIO – Fixed an issue with undoing operations that caused the Audio Controls Editor to crash.
• Fixed an issue that prevented movies or frames in Lumberyard from rendering to the paths with
spaces specified in the Render Output dialog box in Track View.
• Fixed an issue that caused incorrect sequence ranges to save when toggling between the
Seconds and Frames time units in the Sequence Properties dialog box in Track View.
• Fixed an issue that caused the editor to crash when using sequence names over 1,000
characters long.
• Fixed a bug that caused stackStatusListModel to erroneously use columnCount()
rather than the enum ColumnCount when filling out a row.
• Fixed an issue with the mobile analytics client using the default retry strategy that caused long
pauses when a network connection is not present.
• Fixed an issue that caused lmbr_aws to crash if the Metrics DLL does not exist.
• Added validation for key name, bucket name, and file name in the S3 Download and Upload
• The Forgot your password link in the Login to Amazon Lumberyard dialog box now displays the
password assistance page as expected.
• Various fixes include removing a dangling GridMate GameLift reference from the multiplayer
Gem and removing an unnecessary dependency on IAM within Client Manager.
• Fixed an issue with importing FBX files that do not have a scene settings file that caused the
Asset Processor to erroneously report a failure.
• Fixed an issue that prevented the entry of characters that would have resulted in a duplicate
group name.
• Fixed an issue that caused the Scale property to allow both 0 and negative values when
importing assets.
• Extended the iterators in the Scene API with unit tests.
• Fixed floating point precision issues that caused the flow graph node Math:Equal to become
unreliable when reporting equality between numerical values.
• Fixed an issue that caused the flow graph node Math:EvenOrOdd to reverse even and odd
numbers for the node outputs.
• Fixed an issue that caused flow graphs, game tokens, track view sequences, and objects to
delete when right-clicking the viewport while a level loads.
• Fixed an issue that caused the editor to crash when attempting to add comments to a new flow
graph by using shortcuts (for example, Right Alt+F, Right Alt+E, Right Alt+V, Right Alt+O, or
Right Alt+D).
• Fixed an issue that prevented an automatic refresh when a flow graph component is added to
an entity.
• Fixed an issue that caused the audio component to stop all triggers from executing on the
owned proxy upon deactivation.
• Fixed an issue that prevented the component flow graphs from uninitializing properly.
• Fixed an issue that caused unusual behavior when selecting Change Group Name from the
Global Flow Graphs menu.
• Fixed a crash issue when shutting down the Gem Registry.
• Fixed a shutdown crash issue in the Game Effect and Lightning Arc Gems.
• Fixed an issue with deploying Monolithic builds for game projects that include Gems.
• Fixed an issue with building tests for a new Gem that resulted in a failure and Uber file error.
• Fixed an issue with release configuration failing on launch, resulting in a “Failed to load Gems
project” error message.
• Fixed an issue that prevented the animations list in Geppetto to remain in sync and display
• Fixed an issue that erroneously allowed invalid values (0 and negative numbers) for the scale
when importing an FBX.
• The editor no longer crashes when importing a new i_caf file with blendshapes.
• The character tree list no longer displays deprecated CGA files.
• The skeleton file type list no longer displays unsupported formats, such as SKEL and CGA.
• The Resource Compiler no longer crashes due to the System Allocator from the Resource
Compiler Scene and Scene API.
• Fixed an issue that caused level slice to persist slice references across editor level sessions.
• Fixed an issue that prevented scripts from successfully reloading in the editor for entity objects.
• Fixed an issue that prevented the Camera Sample level’s dynamic fly-by camera angle from
functioning correctly when the Cycle balloon cameras button is pressed.
• Fixed various stability issues with loading meshes.
• Fixed an issue that caused the animation component to send multiple OnAnimationStopped
• Fixed an issue with live-lock during loading if a level includes a certain number of mesh assets.
• Fixed an issue that prevented the Component Palette window from unregistering from the
plugin and closing properly.
• Fixed an issue with invalid bound on an object when instantiating component entities from a
slice, resulting in the object being off at the origin and breaking selection in the editor.
• Fixed an issue that prevented values to be set when rotating a designer object on the Y axis to
90 or -90 and beyond.
• Fixed an issue that prevented the use of spaces in the Lumberyard installation path.
• The editor no longer crashes when:
o Selecting a mesh file in PreviewModelCtrl.
o Attempting to push entity changes to a slice.
o Reloading slices and the flow graph wrapper accesses deleted objects.
o Using proximity triggers that activated only once in profile.
o Dragging an asset from the file browser into the viewport when a level is not loaded.
o Cloning a game token.
o Modifying the level library before loading a level.
• Fixed an issue that prevented the Transition editor from saving changes to procedural clips.
• Fixed an issue that prevented the Mannequin Sequence file from saving properly.
• Maya 2015 no longer crashes when using the User Defined Properties (UDP) tool.
• The editor no longer crashes when setting up an AnimObject that uses a character and
animation exported from 3D Studio Max.
• Fixed an issue that misaligned the skin and bones after exporting from 3D Studio Max and
assembling in Geppetto.
• Fixed an issue that caused textures compressed by the Resource Compiler with
colorspace=*,[auto|sRGB] to crash when loaded on iOS.
• Fixed an issue that prevented skinned character shadows from working correctly in the GMEM
render path.
• Fixed a buffer overflow vulnerability in CarrierThread::ProcessIncomingDatagram
when receiving incoming datagrams.
• Fixed a buffer overflow vulnerability in CarrierThread::ReadAckData() when receiving
malformed system ack messages, preventing a denial of service.
• Fixed a crash in the object stream when skipping unreflected root node in binary mode.
• Fixed a bug that prevented game code from receiving the SignIn system event.
• Fixed a bug that prevented RPCs from being called for proxies when multiple chunks were
bound to a replica.
• Fixed a bug for processing unknown chunk types.
• Fixed an issue that caused existing players to disconnect and the server to crash if the number
of players attempting to connect exceeded the maximum number of players allowed, as
specified by the sv_maxplayers value.
• Fixed an issue that prevented the Gradient Editor from preserving set values.
• Fixed an issue that caused the delete confirmation dialog box to display twice when attempting
to delete a particle or folder.
• Fixed an issue that prevented a modified color value from saving to the XML file.
• The editor no longer crashes:
o After editing a particle from an imported library and closing the Particle Editor by
clicking Cancel in the warning message dialog box.
o After creating a library and closing the Particle Editor without saving the library.
o When attempting to hide the Attribute panel in the Particle Editor.
• Fixed an issue in the particle library version 27 that prevented particles from loading correctly.
• Fixed an issue that prevented “forward” planar decals from rendering properly in certain
• Fixed an issue that caused materials cloned with a .ddna file to bind an incorrect
smoothness/gloss texture.
• Fixed an issue that caused the sun position and lighting to move when opening the Sun
Trajectory pane.
• The particle orientation now loads correctly in a level.
• The environment probe preview option now renders correctly.
• The editor no longer crashes in debug when configuring the layout to use multiple viewports.
• Added support for MIN_MAG_MIP_LINEAR as a shader token, which resolves asserts in debug.
PROJECT CONFIGURATOR – A warning message about running lmbr_waf configure after creating
a project now persists within a single session of the Project Configurator. Previously the warning
message would disappear after the first time a new project was created.
• Fixed an issue that caused a ‘texture file missing’ warning message to display when opening the
Animation_Basic_Sample level.
• Fixed an issue that caused the Animation_Basic_Sample level to crash when using the
SamplesProjectLauncher.exe standalone launcher.
• Changed the default SDK requirements for running a game. If you want to compile game code
only, you can now run a Waf configuration step. The Codejock Xtreme Toolkit Pro, which is
included with Lumberyard, is now marked as required.
• Various fixes include updates to text, icons, and page functionality.
• Fixed the pop-up position of the Sprite Border Editor and the Anchor Presets widget.
• Fixed various issues with running a game in the editor and loading a canvas in a game that is
already loaded in the UI Editor. For example, loading a canvas in-game when it is loaded in the
editor will result in a copy of the canvas that is used by the game.
• Fixed a bug in the UITextInput component that prevented selecting a text range backwards
from functioning correctly.
• Fixed an issue with sliced images where the image rectangle is thinner than the sprite borders,
resulting in the borders overlapping.
• Fixed a bug that caused changes to save when clicking Cancel in the Sprite Border Editor.
• Fixed a bug that caused the browser to save when clicking Cancel in the Changes have been
made dialog box.
• Fixed an issue that caused the UI Editor to become unresponsive when 20+ canvas files are
open in the editor.
• Reinstated the Font Effect property in the Text component property pane.
• The image texture browser now properly supports the file formats listed in the browser: .bmp,
.dds, .gif, .jpeg, .png, .tga, and .tif.
• Fixed an issue that prevented AZStd::conditional_variable.wait(…) from halting a thread.
• Fixed an issue that prevented the AZ::Entity cached shadow from updating.
• Fixed an issue that caused AZ::Entities to vanish when moved from the initial position.
• Fixed an issue with selecting more than eight entities by adding entries to the dynamic pop-up
menu allocation.
• Fixed an issue that caused the Resource Compiler to connect to Perforce during asset
processing, even though the Perforce plugin is disabled in the editor.
• Fixed an issue with saving changes in the Audio Controls Editor that caused the Perforce
connection to break and display an error message.
• Various fixes to the CodeGenPreview solution include updates to AZCore/AZCoreTests
and support for proper include paths for rapidxml


The complete and massive release notes are available in this PDF.  Let’s hope Amazon keeps improving Lumberyard at this rate in the future, we might have a real fight on our hands!

GameDev News

22. March 2016


A week ago CryEngine V was launched and I have been intending to check it out but I couldn’t.  Put simply, the login servers just didn’t work.  Some people managed to get in eventually, but if you tried to login in while the servers were broken it damaged that login and it would never work.  I just received the following email:



Due to last week's server issues some users have yet to receive their confirmation email, and are still unable to login.

Our team solved the problem, but we need affected users to register again. If you haven't received an activation email or your log in doesn't work, we kindly ask you to register again. You can use the same registration email as before.

If you still have any issues after doing so, please contact us.

We are very sorry for the inconvenience caused, and thank you for your understanding.



Signing up for a new account finally got me in.  That said , it seems my desired username is now taken as a result.  Considering my last major experience with CryEngine was when they leaked all their developers information several years back, I will say I’m not exactly thrilled with their server side support...


If you’ve been waiting to try CryEngine, try it again.  I personally managed to create an account this time at least.


EDIT: Nevermind... spoke to soon



Seriously CryEngine, this is beyond pathetic at this point.

EDIT2:  The CryEngine Login Failed. Server not reachable error seems to be linked to authorizing your account.  For some reason when I went back to the confirmation email and authorized a second time it started working.

GameDev News

16. March 2016


Launched just last month, today at GDC Amazon announced the first (beta) update, Lumberyard 1.1.  This update has a fairly impressive number of features including:

  • a new component/entity system
  • Substance PBR integration
  • FBX importer
  • mobile support (just ARM8 + iOS devices and the NVidia Shield for now)
  • new Twitch/Chatplay features

For smaller developers the FBX importer is probably the biggest deal, as Lumberyard currently requires you to use Maya or 3D Studio Max plugins to export in a compatible format.  The addition of a stand alone FBX importer opens Lumberyard up to a number of other DCC solutions such as Blender, Cinema4D, etc.

Obviously mobile support is a big deal as well, but it’s extremely limited at this point.  A bit more on that topic:

Lumberyard Beta 1.1 introduces mobile support. In this release, we include support for iOS devices with an A8 or better processor and the Android-based Nvidia Shield. Lumberyard Beta 1.1 uses Apple’s Metal API and leverages their GMEM fast memory to enable you to create high-fidelity iOS visuals. By using Metal and GMEM, Lumberyard enables your game to directly access and push more data to the Apple GPU hardware, so your game can use the latest rendering techniques (e.g. post effects such as depth of field, glow, flares, and color grading). Supporting mobile developers building 3D and connected games is a priority for us and we will continue to expand device support in coming releases.

Obviously in time that will become more mature.  Finally a bit more on the component/entity system:

One of the areas we are focused on with Lumberyard is making the engine extensible by developers without changing engine code. Our new Component Entity system is built to enable easy engine extension with new components. Content creators can drag-and-drop and combine those components into new game objects. They can then make reusable assemblies of Component Entities, which we call “Slices.” Slices can be composed of other nested Slices. Slices can contain scene elements and game logic written in Flow Graph, Lua, or C++. Individual properties of Slices can be overridden, or shared among all copies of a Slice. This approach allows you to lay out generic copies of a Slice in a scene, and then quickly make changes to specific copies.  For example, if you have a Slice that includes a row of street lamps, you could also include broken light bulbs on a select set of those street lamps. Furthermore, changes to the base model can quickly be shared with all copies. The Lumberyard Editor includes rapid drag-and-drop workflows for creating Components and Slices.

Component Palette


Pretty solid progress in a short period of time.  For more details read the complete release here.

GameDev News

15. March 2016


Big news out of the GDC today.  Crytek have shipped CryEngine V, it’s released under a pay what you can license that gives you full access including source code. is currently unavailable, so the source for this news is  I am still waiting to hear the official announcement from Crytek.


From the article:

Launched with a “Pay What You Want” business model, developers will have full access to the engine’s feature-set and source code for a fee of their choosing and have no obligation to pay royalties or additional service charges to Crytek. Users who decide to do so can allocate 70 percent of the sum to Crytek’s new Indie Development Fund, which will see Crytek directly supporting promising independent projects around the world.

Crytek V comes with access to the CryEngine Marketplace, which will enable developers to access individual assets from Crytek’s own library, as well as thousands of materials, sounds, and 3D objects created by the CryEngine community and other vendors.


CryEngine V features the following:

  • C# Enabled: A new API that allows developers who know C# to start scripting in CryEngine V right away.
  • Reworked Low Overhead Renderer: Significantly increases the performance of today’s hardware in graphically intensive applications.
  • DirectX 12 support: Utilize the latest branch of DirectX to take greater control of hardware resources.
  • Advanced Volumetric Cloud System: Optimized for VR to give clouds full 3D spatial rendering for higher quality with minimal performance hit.
  • New particle system: Create stunning real-time fluid effects, handled almost entirely on the GPU.
  • A new launcher and UI: Navigate CryEngine more intuitively thanks to a streamlined UI which includes realigned features and new icon groupings.
  • FMOD Studio support: Allowing greater flexibility in audio middleware selection.
  • CryEngine Answers: A dedicated channel where the CryEngine community can share questions and answers.
  • CryEngine is also supposed to focus on better documentation and improved usability, both major flaws with earlier releases.


    While is unavailable, their updated documentation site is online, including this in-depth documentation on the new features of CryEngine V.

    GameDev News

    AppGameKit Studio

    See More Tutorials on!

    Month List