Introduction
Lumberyard is the latest 3D game engine to hit the market. It is a free, multi-deploy platform engine that offers deep integration with both the Amazon Web Services (AWS) infrastructure and Twitch to improve general online gameplay.
The Lumberyard engine technology is based on CryEngine. Amazon licensed one version of CryEngine and got complete access to its technology. That does not mean that CryEngine will leave the market, since Lumberyard only represents a branch of CryEngine technology. Both will be present and will struggle for market share.
Lumberyard is a powerful and full-feature AAA game engine that enables you to create games for the latest console generation (Xbox One and PlayStation 4). Mobile support is also a goal (the engine already has rendering options for iOS and Android).
Lumberyard's wide range of features include the following:
- State-of-the-art rendering techniques such as: physically based rendering, dynamic global illumination, real-time dynamic water caustics, HDR lens flares, motion blur, depth of field, among many others.
- Real-time gameplay editor that enables you to iterate on gameplay elements and immediately see the results.
- Robust Networking through the use of a flexible networking subsystem called GridMate. GridMate integrates with major online networking services and lets you handle peer to peer client server typologies with host migration.
- Modular Gems offers you a library of several pre-built features (camera, controls, and environment, among others) that can be used to start new projects quickly. Gems give you increased control over which technologies you want to include in your project.
- C++ development, and completely free access to its native C++ source code. The engine (and its full source code) is completely free to download and use. However, Amazon expects to generate money through the use of its AWS cloud computing service.
Note that Lumberyard is still in beta version.
Who Should Read This Tutorial Series?
This tutorial series is primarily aimed at two groups of game developers:
- those who are completely unfamiliar with game engines at all
- those who are familiar with other game engines (such as Unity, Unreal Engine, or Cry Engine), but not with Lumberyard
I assume that you have some knowledge of computer graphics notations, so I won't exhaustively cover all notations.
Prerequisites
In order to install and have a smooth experience while using Lumberyard, your computer must achieve certain minimum requisites:
- Windows 7 or higher (64 bit versions only)
- Intel Quad-Core (i 2300), AMD Octo-Core (FX810), or better
- 8GB of RAM (at least)
- NVIDIA GeForce 6600Ti. Radeon HD790, or better
- 40 GB of disk space
- Visual Studio 2013 (Community, Pro, or Ultimate) with update version 4
Note that if you are at the threshold of the minimum requirements, you may have an inferior quality of experience. In that case, remember that you can lower the overall graphics quality at: File > Global Preferences > Configure.
Installation
The first step in this tutorial is to download Lumberyard. The current version (v1.1) is about 5.3GB file size. While the download is progressing, you should register with Amazon.com (if you don't already have an account).
To install Lumberyard, you can download a complete bundled file (.zip) or use an installer (.exe). The end result is the same, though; this tutorial uses the bundled version.
Step 1: Extraction
After the download is complete, extract it to a path that does not have spaces in the name. For example, do not extract the files to C:\Program Files\Lumberyard because the path has a space in it. An example of an acceptable location is C:\Lumberyard.
You now have Lumberyard installed on your computer, but before you can run it, you need to configure your environment and eventually install additional software.
Step 2: Configuration
The next step is to configure the environment to ensure that you have the necessary software to run the engine. For that purpose, you will use the Lumberyard Launcher (LumberyardLauncher.exe), which can be found inside the folder where you previously installed Lumberyard. Run the LumberyardLauncher.exe file and a similar interface should appear:
The Launcher will assist you in ensuring that you always have the necessary software for the execution of tasks. It shows you where the default installation path is located and what actions can be performed based on the software that is currently installed.
Your next step is to select three options:
- Run your game project
- Run the Lumberyard Editor and Tools
- Compile the game code
Note that as soon as you select one of the aforementioned options, the left part of the Launcher is modified and several menus appear (Install software, Install SDKs, Install Plugins). A green check mark means that everything is OK, while a red cross means that something is wrong (some software is missing).
If you see at least one red cross, you should investigate what is happening. Click Next (bottom right corner) or click on the Install software option. A list of available and missing software is presented.
You need to install all the Missing software. Go ahead and click Install it for every single software that is missing. When you have a green check mark at Install software, click Next.
The Install Plugins interface, as the name suggests, "allows you to use certain features and functionality between third party software and Lumberyard". At this point you don't need to add any additional plugins, but make a mental note of them. They are primarily useful when you want to import assets from Photoshop, Autodesk Max, or Autodesk Maya. Click Next.
Step 3: Lumberyard Launcher
The Summary interface shows an activity log (based on previously actions) and three major options:
- Configure project
- Launch Lumberyard editor
- A list of optional software you may want to install
This interface is from now on called Lumberyard Launcher (or simply Launcher). Click on Configure project.
The Project configurator displays several projects with specific configurations, packages, and assets. Here you can create your projects and select the specific assets or configurations that the project will be using.
Initially you will only have two available projects (MultiplayerProject and SamplesProject). As the names suggest, the former is a multiplayer project, while the second is a more generic project (initially you will be using it).
Furthermore, if you notice, the SamplesProject is highlighted with a white check mark. It means that this project is the default project loaded by Lumberyard. Click on Enable packages.
Here you access the available Gems of Lumberyard. A Gem is a collection of assets, resources, and others to extend or modify functionality in Lumberyard applications. Several Gems are available, as you can see.
Close this window and return to Lumberyard Launcher.
Recall that you can always access the Launcher using the LumberyardLauncher.exe executable available in the folder dev\Bin64 under your Lumberyard installation path. It is now time to click on Launch Lumberyard editor.
Step 4: Lumberyard Editor
A new interface (Asset Processor) should appear. The Asset Processor is responsible for loading Lumberyard default project assets (the one highlighted in the Project Configurator). The estimated time is about 10+ minutes.
Soon the Lumberyard Editor should load.
Wait for the Asset Processor to finish its work. Later, I’ll present a scenario where you load a project that does not have all the resources available.
Recall that, similar to Launcher, you can always access the Editor using the Editor.exe executable available in the folder dev\Bin64 under your Lumberyard installation path.
Editor Layout
Before using Lumberyard Editor, you will need to learn its layout configuration and how to navigate within the Perspective Viewport.
The Lumberyard Editor interface is divided into the following areas (each numerically represented in the following image):
- Main menu: Access to all game engine functions and settings.
- Editor toolbar: Most commonly used tools (Select, Move, Rotate, Scale, Lock on, Ruler, Snapping, among others). It is composed of three bars: EditMode, Object, Editors.
- Viewport header: Search bar and several display options for Perspective Viewport (display resolution, ratio, helpers, among others).
- Perspective Viewport: A preview of your 3D environment. It is where the action occurs.
- Viewport controls: Several controls for selected objects, mouse location, navigation speed, camera collision detection, AI/Physics, and others.
- Console: Display of input and output between the user and the Editor.
- Rollup Bar: Access to objects and tools for building and managing content in the Perspective Viewport.
The Rollup Bar is more complex than it initially appears, since it handles all properties, definitions and characteristics of all objects within the Perspective Viewport. Therefore, it's important to enumerate its tabs:
- Objects: Contains options for Artificial Intelligence, Entities (Actor, Archetype, Component, Geometry, Particles), Audio, Brushes, and Prefabs, among others.
- Terrain: Contains options to apply, modify, and remove terrains, vegetation, holes, Fog, Wind, Clouds, Skyboxes, and others.
- Modeling: Contains options for geometry handling, such as selection of geometry types and display types (wire-frame, flat shading, full geometry).
- Display: Contains options regarding the rendering settings, i.e., clouds, roads, Fog, Terrain, and Sky box, among others.
- Layers: As the name suggests, it contains options to organize your assets by layers.
Open the First Level
It is now time to open your first level and play with it. Inside the Welcome to Lumberyard Editor window, click on Open level.
Then, expand the GettingStartedFiles, choose the getting-started-completed-level, and click Open.
Note that the list of files and samples presented here belongs to the project that is set by default.
Soon a small 3D village is presented:
3D Level Navigation
Navigating inside the Perspective Viewport is easy, since it uses traditional First Person Shooter (FPS) controls.
Action | Keyboard Key |
---|---|
Strafe forward | W |
Strafe backward | D |
Strafe left | cell |
Strafe right | cell |
For the record, note that you can modify these keys if you want (more on that later).
Since 3D scenes are composed of objects or entities, you can interact with them using the mouse.
Action | Mouse Button |
---|---|
Select objects | Left mouse button |
Turn left/right, look up/down | Right mouse button |
Pan left, right, up, or down | Middle mouse button |
Zoom in, out | Mouse wheel or (Right mouse + middle mouse button) |
Before continuing to read the tutorial, you can invest some time playing with these controls within the village demo (or load any other demo from the available ones). To load another demo you only need to select File > Open and choose another sample.
Assets Installation
Lumberyard currently offers three additional ready-to-use art assets and code that you can use as examples:
- Woodland: A collection of wilderness (forest, vegetation, and other natural features) assets.
- Beach City: A dark and stormy night containing several assets (cars, houses, vegetation).
- Legacy Game Sample: A ready-to-go FPS game, including complex animated characters, vehicles and game IA. This sample uses the woodland sample assets.
The first step is to download them all.
Step 1: Woodland
The Woodland asset is the easiest to install since it comes packaged as a Gem. Unzip the Woodland zip file to the dev\Gems folder inside your default Lumberyard installation.
To verify that everything is fine, open the Project configurator >Enable packages; at the bottom you should now see the Woodland Asset Collection.
To add the Woodland asset to the SamplesProject (your current default project), you only need to check the box and wait for the Asset Processor to load all resources.
Step 2: Beach City
To install the Beach City, you must follow the following steps:
- Unpack the Beach City zip file into your Lumberyard \dev directory.
- Navigate to dev\_WAF_ (inside the installation folder).
- Edit the file *projects.json and add the following to the end of the file before the last closing brace:
{ ... "BeachCity": { "product\_name": "BeachCity", "executable\_name": "BeachCityLauncher", "code\_folder": "Code/BeachCity", "project\_directory" : "BeachCity", "modules" : ["BeachCity"] } }
Now open the Project configurator, click Configure project, select BeachCity and click Set as default.
Open the Editor and open the level (Open level > BeachCity_NightTime). If everything is working, you should be able to navigate within the Beach City environment. Note that by default this asset doesn’t have a Camera Framework, so you can only (for now) navigate in the Editor mode.
Step 3: Legacy Game Sample
The Legacy Game Sample installation is similar to Beach City.
- Unpack the Legacy Game Sample zip file into your engine directory.
- Navigate to dev\_WAF_ (inside the installation folder).
- Edit the file projects.json and add the following to the end of the file before the last closing brace:
"GameSDK": { "product\_name": "GameSDK", "executable\_name": "GameSDKLauncher", "code\_folder": "Code/GameSDK", "project\_directory" : "GameSDk", "modules" : ["GameSDK"] }
The complete projects.json is now:
{ "SamplesProject": { "product_name" : "Samples Project", "executable_name" : "SamplesProjectLauncher", "code_folder" : "Code/SamplesProject", "project_directory" : "SamplesProject", "modules" : ["SamplesProject"], "android_settings": { "package_name" : "com.cryengine.sdk", "orientation" : "landscape" } }, "MultiplayerProject" : { "product_name" : "Multiplayer Project", "executable_name" : "MultiplayerProjectLauncher", "code_folder" : "Code/MultiplayerProject", "project_directory" : "MultiplayerProject", "modules" : ["MultiplayerProject"], "android_settings": { "package_name" : "com.cryengine.sdk", "orientation" : "landscape" } }, "BeachCity": { "product_name": "BeachCity", "executable_name": "BeachCityLauncher", "code_folder": "Code/BeachCity", "project_directory" : "BeachCity", "modules" : ["BeachCity"] }, "GameSDK": { "product_name": "GameSDK", "executable_name": "GameSDKLauncher", "code_folder": "Code/GameSDK", "project_directory" : "GameSDk", "modules" : ["GameSDK"] } }
Before you test the Legacy Game Sample you need to perform an additional step. Open a Command Prompt in your Lumberyard dev folder and run the following command:
lmbr_waf configure
If you get any error, it should be solved by the following steps:
- Open the Launcher.
- Select Compile the engine and asset pipeline.
- Install the required software.
Run the lmbr_waf configure
command again.
To test these assets you just need to open the Project configurator, click Configure project, select GameSDK and click Set as default. Wait until the Asset Processor loads all the assets. Now you can play a complete FPS within Lumberyard.
To enter game mode, you must select from the Main menu the option Game > Switch to Game.
Conclusion
This concludes this introductory tutorial to Lumberyard. You learned where and how to download, install, and configure it. Then you learned the basic notations of the interface and navigation. Finally, you found out how to import, configure and use the available external assets.
If you have any questions or comments, as always, feel free to drop a line in the comments.