14 min read

In this article by Dr. Edward Lavieri, author of the book Learning AWS Lumberyard Game Development, you will learn what the Lumberyard game engine means for game developers and the game development industry.

(For more resources related to this topic, see here.)

What is Lumberyard?

Lumberyard is a free 3D game engine that has, in addition to typical 3D game engine capabilities, an impressive set of unique qualities. Most impressively, Lumberyard integrates with Amazon Web Services (AWS) for cloud computing and storage. Lumberyard, also referred to as Amazon Lumberyard, integrates with Twitch to facilitate in-game engagement with fans. Another component that makes Lumberyard unique among other game engines is the tremendous support for multiplayer games. The use of Amazon GameLift empowers developers to instantiate multiplayer game sessions with relative ease.

Lumberyard is presented as a game engine intended for creating cross-platform AAA games. There are two important components of that statement. First, cross-platform refers to, in the case of Lumberyard, the ability to develop games for PC/Windows, PlayStation 4, and Xbox One. There is even additional support for Mac OS, iOS, and Android devices. The second component of the earlier statement is AAA games. A triple-A (AAA) game is like a top-grossing movie, one that had a tremendous budget, was extensively advertised, and wildly successful. If you can think of a console game (for Xbox One and/or PlayStation 4) that is advertised on national television, it is a sign the title is an AAA game.

Now that this AAA game engine is available for free, it is likely that more than just AAA games will be developed using Lumberyard. This is an exciting time to be a game developer.

More specifically, Amazon hopes that Lumberyard will be used to develop multiplayer online games that use AWS for cloud computing and storage, and that integrates with Twitch for user engagement. The engine is free, but AWS usage is not. Don’t worry, you can create single player games with Lumberyard as well.

System requirements

Amazon recommends a system with the following specifications for developing games with Lumberyard:

  • PC running a 64-bit version of Windows 7 or Windows 10
  • At least 8 GB RAM
  • Minimum of 60 GB hard disk storage
  • A 3 GHz or greater quad-core processor
  • A DirectX 11 (DX11) compatible video card with at least 2 GB of video RAM (VRAM)

As mentioned earlier, there is no support for running Lumberyard on a Mac OS or Linux computer.

The game engine is a very large and complex software suite. You should take the system requirements seriously and, if at all possible, exceed the minimum requirements.

Beta software

As you likely know, the Lumberyard game engine is, at the time of this book’s publication, in beta. What does that mean? It means a couple of things that are worth exploring.

First, developers (that’s you!) get early access to amazing software. Other than the cool factor of being able to experiment with a new game engine, it can accelerate game projects. There are several detractors to this as well. Here are the primary detractors from using beta software:

  • Not all functions and features will be implemented. Depending on the engine’s specific limitations, this can be a showstopper for your game project.
  • Some functions and features might be partially implemented, not function correctly, or be unreliable. If the features that have these characteristics are not the ones you plan to use, then this is not an issue for you. This, of course, can be a tremendous problem. For example, let’s say that the engine’s gravity system is buggy. That would make testing your game very difficult as you would not be able to rely on the gravity system and not know if your code has issues or not.
  • Things can change from release to release. Anything done in one beta version is apt to work just fine in subsequent beta releases. Things that tend to change between beta versions, other than bug fixes and improvements, are interface changes. This can slow a project up considerably as development workflows you have adopted may no longer work.

In the next section, you will see what changes were ushered in with each sequential beta release.

Release notes

Amazon initially launched the Lumberyard game engine in February 2016. Since then, there have been several new versions. At the time of this book’s publication, there were five releases: 1.0, 1.1, 1.2, 1.3, and 1.4. The following graphic shows the timeline of the five releases:

Let’s look at the major offerings of each beta release.

Beta 1.0

The initial beta of the Lumberyard game engine was released on February 9, 2016. This was an innovative offering from Amazon. Lumberyard was released as a triple-A cross-platform game engine at no cost to developers. Developers had full access to the game engine along with the underlying source code. This permits developers to release games without a revenue share and to even create their own game engines using the Lumberyard source code as a base.

Beta 1.1

Beta 1.1 was released just a few short weeks after Beta 1.0. According to Amazon, there were 208 feature upgrades, bug fixes, and improvements with this release. Here are the highlights:

  • Autoscaling features
  • Component Entity System
  • FBX Importer
  • New Game Gems
  • Cloud Canvas Resource Manager
  • New Twitch ChatPlay Features

Beta 1.2

In just a few short weeks after Beta 1.1 was released, Beta 1.2 was made available. The rapid release of sequential beta versions is indicative of tremendous development work by the Lumberyard team. This also gives some indication as to the amount of support the game engine is likely to have once it is no longer in beta.

With this beta, Amazon announced 218 enhancements and bug fixes to nearly two-dozen core Lumberyard components. Here are the largest Lumberyard game engine components to be upgraded in Beta 1.2:

  • Particle editor
  • Mannequin
  • Geppetto
  • FBX Importer
  • Multiplayer Gem
  • Cloud Canvas Resource Manager

Beta 1.3

The three previous beta versions were released in subsequent months. This was an impressive pace, but not likely sustainable due to the tremendous complexities of game engine modifications and the fact that the Lumberyard game engine continues to mature. Released in June 2016, the Beta 1.3 release of Lumberyard introduced support for Virtual Reality (VR) and High Dynamic Range (HDR).

Adding support for VR and HDR is enough reason to release a new beta version. Impressively, this release also contained over 130 enhancements and bug fixes to the game engine. Here is partial list of game engine components that were updated in this release:

  • Volumetric fog
  • Motion blur
  • Height Mapped Ambient Occlusion
  • Depth of field
  • Emittance
  • Integrated Graphics Profiler
  • FBX Importer
  • UI Editor
  • FlowGraph Nodes
  • Cloud Canvas Resource Manager

Beta 1.4

At the time of this book’s publication, the current beta version of Lumberyard was 1.4, which was released in August 2016. This release contained over 230 enhancements and bug fixes as well as some new features.

The primary focus of this release seemed to focus on multiplayer games and making them more efficient. The result of the changes provided in this release are greater cost-efficiencies for multiplayer games when using Amazon GameLift.

Sample game content

Creating triple-A games is a complex process that typically involves a large number of people in a variety of roles including developers, designers, artists, and more. There is no industry average for how long it takes to create a Triple-A game because there are too many variables including budget, team size, game specifications, and individual and team experience. This being said, it is likely to take up to 2 years to create a triple-A game from scratch.

Triple-A, or AAA, games typically have very large budgets, large design and development teams, large advertising efforts, and are are largely successful. In a nutshell, Triple-A games are large!

Around 2 years is a long time, so we have shortened things for you in this book using available game samples that come bundled with the game engine. As illustrated in the following section, Lumberyard comes with a great set of starter content and sample games.

Starter content

When you first launch Lumberyard, you are able to create a new level or open an existing one. In the Open a Level dialog window, you will find nine levels listed under Levels | GettingStartedFiles. Each of these levels presents a unique opportunity to explore the game engine and learn how things are done. Let’s look at each of these, next.

getting-started-completed-level

As the level name suggests, this is a complete game level featuring a small game grid and a player-controlled robot character. The character is moved to the standard WASD keyboard keys, rotated with the mouse, and uses the spacebar to jump.

The level does a great job of demonstrating physics. As is indicated in the following screenshot, the level contains a wall of blocks that have natural physics applied. The robot can run into the wall and fallen blocks as well as use the ramp to launch into the wall. More than just playing the game, you can examine how it was created.

This level is fully playable. Simply use the Ctrl + G keyboard combination to enter Game Mode. When you are through playing the game, press the Ecs key to exit.

This completed level can be further examined by loading the remaining levels, featured in this section. These subsequent levels make it easier to examine specific components of the level.

start-section03-terrain

This section simply contains the terrain. The complete terrain is provided as well as additional space to explore and practice creating, duplicating, and placing objects.

start-section04-lighting

This level is presented with an expanded terrain to help you explore lighting options. There are environmental lighting effects as well as street lamp objects that can be used to emit light and generate shadows in the game.

This level is not playable and is provided to aid your learning of Lumberyard’s lighting system.

start-section05-camera-playerstart

This non-playable level is convenient for examining camera placement and discovering how that impacts the player’s starting position on game launch.

start-section06-designer-objects

This level is playable, but only to the extent that you can control the robot character and explore the game’s environment.

With this level, you can focus your exploration on editing the objects.

start-section07-materials

This level includes the full game environment along with two natively created objects: a block and a sphere. You can freely edit these objects and see how they look in Game Mode. This represents a great way to learn as it is a no-risk situation. This simply means that you do not have to save your changes, as you are essentially working in a sandbox with no impact to a real game project.

This is a playable level that allows you to explore the game environment and preview any changes you make to the level.

start-section08-physics

This starter level has the same two 3D objects (block and sphere) as the previous starter level. In this level, the objects have textures.

No physics are already applied to this level, so it is a good level to use to practice creating objects with physics. One option is to attempt to replicate the wall of stacked objects that is present in the completed level.

start-section09-flowgraph-scripting

This playable level contains the wall of 3D blocks that can be knocked over. The game’s gameplay is instantiated with FlowGraphs, which can be viewed and edited using this starter level.

start-section10-audio

This final starter level contains the full playable game that serves as a testing ground for implementing audio in the game.

Sample games

There are six sample unrelated game levels accessible through the Open a Level dialog window, you will find nine levels listed under Levels | Samples. Each of these levels are single level games that demonstrate specific functionality and gameplay. Let’s look at each of these next.

Animation_Basic_Sample

This game level contains an animated character in an empty game environment. There is a camera and light. You can play the game to watch the animated character’s idle animation.

When you create 3D characters, you will use Geppetto, Lumberyard’s animation tool.

Camera_Sample

You can use this sample game to help learn how to create gameplay. The sample game includes a Heads Up Display (HUD) that presents the player with three game modes, each with a different camera. This game can also be used to further explore FlowGraphs and the FlowGraph Editor.

Dont_Die

The Don’t Die game level provides a colorful example of full gameplay with an interactive menu system. The game starts with a Press any key to start message followed by a color selection menu depicted here. The selected color is applied to the spacecraft used in the game.

Movers_Sample

With this game, you can learn how to instantiate animations triggered by user input. Using this game, you will also gain exposure to FlowGraphs and FlowGraph Editor.

Trigger_Sample

This sample game provides several examples of Proximity and Area Triggers. Here is the list of triggers instantiated in this sample game:

  1. Proximity trigger
    • Player only
    • Any entity
    • One entity at a time
    • Only selected entity
  2. Three entities required to trigger
  3. Area trigger
    • Two volumes use same trigger
    • Stand in all three volumes at the same time
    • Step inside each trigger in any order
    • Step inside each trigger in correct sequence

UIEditor_Sample

This sample game is not playable but provides a commercial-quality User Interface (UI) example. If you run the level in Game Mode, you will not have a game to play, but the stunning visuals of the UI give you a glimpse of what is possible with the Lumberyard game engine.

Amazon Web Services

AWS is a family of cloud-based scalable services to support, in the context of Lumberyard, your game. AWS includes several technologies that can support your Lumberyard game. These services include:

  • Cloud Canvas
  • Cloud Computing
  • GameLift
  • Simple Notification Service (SNS)
  • Simple Query Service (SQS)
  • Simple Storage Service (S3)

Asset creation

Game assets include graphic files such as materials, textures, color palettes, 2D objects, and 3D objects. These assets are used to bring a game to life. A terrain, for example, is nothing without grass and dirt textures applied to it. Much of this content is likely to be created with external tools.

One internal tool used to implement the externally created graphical assets is the Material Editor.

Audio system

Lumberyard has Audio System that controls how in-game audio is instantiated. No audio sounds are created directly in Lumberyard. Instead, they are created using Wwise Software (Wave Works Interactive Sound Engine) by Audiokinetic.

Because audio is created external to Lumberyard, a game project’s audio team will likely consist of content creators and developers that implement the content in the Lumberyard game.

Cinematics system

Lumberyard has a Cinematics System that can be used to create cut-scenes and promotional videos. With this system, you can also make your cinematics interactive.

Flow graph system

Lumberyard’s flow graph system is a visual scripting system for creating gameplay. This tool is likely to be used by many of your smaller teams. It can be beneficial to have someone that oversees all Flow Graphs to ensure compatibility and standardization.

Geppetto

Geppetto is Lumberyard’s character tool. A character team will likely create the game’s characters using external tools such as Maya or 3D Studio Max. Using those systems, they can export the necessary files to support importing the character assets into your Lumberyard game. Lumberyard has an FBX Importer tool that is used to import characters created in external programs.

Mannequin editor

Animating objects, especially 3D objects, is a complex process that takes artistic talent, and technical expertise. Some projects incorporate separate teams for object creation and animation. For example, you might have a small team that creates robot characters and another team that generates their animations.

Production team

The production team is responsible for creating builds and distributing releases. They will also handle testing coordination. One of their primary tools will be the Waf Build System.

Terrain editor

A game’s environment consists of terrain and objects. The terrain is the foundation for the entire game experience and is the focus of exacting efforts. The creation of a terrain starts when a new level is created. The Height Map resolution is the first decision a level editor, or person responsible for creating terrain, is faced with.

Twitch ChatPlay system

Twitch integration represents exciting game possibilities. Twitch integration allows you to engage your game’s users in unique ways.

UI editor

Creating a user interface is often, at least on very large projects, the responsibility of a specialized team. This team, or individual, will create the user interface components on each game level to ensure consistency. Artwork required for the user interfaces is likely to be produced by the Asset team.

Summary

In this article, you learned about AWS Lumberyard and what it is capable of. You gained an appreciation for Lumberyard’s significance to the game development industry. You also learned about the beta history of Lumberyard and how quickly it is maturing into a game engine of choice.

Resources for Article:

Further resources on this subject:


LEAVE A REPLY

Please enter your comment!
Please enter your name here