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-featured 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).
In this tutorial, I'll do an analysis of the Lumberyard editor, namely the editor layout, objects, essential tools, navigation, and layers.
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, and those who are familiar with other game engines (such as Unity, Unreal Engine, or Cry Engine) but aren't familiar with Lumberyard. I assume that you have some knowledge of computer graphics notation, so I won't exhaustively cover all notations.
Despite the fact that you don't really need to read the first tutorial part, you are advised to do so since it covers the initial installation and configuration steps.
If you just want to start using Lumberyard, you're right on track.
The Lumberyard Editor provides several tools for creating and modifying your game environment, including levels, objects, textures, terrain, lighting, physics, animation, layers, and a lot more.
As you can already guess, the Editor will be your best companion during the creation of games. Before you can start using and learning the Editor, you must create a new level.
Create a New Level
A level is a 3D environment (or a map) that represents the available virtual space or area for you to create your game (or single level). Launch Lumberyard Editor (Editor.exe) and a similar interface should appear.
In the Welcome to Lumberyard Editor interface, you can create a new level, open a recent level, or open a level from within the Lumberyard directory. Click New Level.
Name your level First_Level and click OK. For this tutorial, you will use the default values under Heightmap Resolution and Meters Per Texel.
The first, as the name suggests, represents a 2D greyscale map of your height information.
The latter represents the size of each Texel (represented as a square on the perspective floor). If you play with those values, you can see that the Terrain Size changes accordingly.
In the Generate Terrain Texture interface, you can control the appearance of your level's terrain. Texture Dimensions represents the overall texture quality (more quality implies more computational resources). Terrain Color Multiplier represents the number of colors that will be used to compensate for the texture compression.
Normally, you should start with a lower value (ranges from 1 to 16) and increase it if the terrain colors are distorted or have artifacts. Checking the High-Quality check-box increases textures; this setting takes longer but results in fewer compression artifacts and does not affect memory or CPU usage in game mode.
You don't need to change the defaults values for now. Click OK. The Lumberyard Editor will appear.
Lumberyard only has three object types (Entities, Brushes, and Designed objects) that encompass every object that can be placed in a level. Even external imported objects will be automatically cataloged as one of these three object types.
- Entities are objects with behavior properties. A behavior property uses a game script or programming code to enable objects to respond to game objects (for example, a moving car). Entities are subdivided into the following types:
- Entities represent general objects that are normally used to create gameplay conditions, such as actors, animations, lights, and cameras, among others.
- Geometry Entities represent the aforementioned objects but attached with geometry mesh information.
- Particle Entities represent physical particles.
- Archetype Entities represent a custom set of objects that are created based on the available entity properties.
- Brushes are objects with 3D mesh data only; they do not contain behavior properties.
- Designer objects are objects created with the Lumberyard Designer modeling tool.
Later in this tutorial, you will learn how to create and modify each available object.
Lumberyard Editor features several tools, settings, and options to help you create high-quality games. The essential tools for manipulating objects are Select, Move, Rotate, Scale, and Terrain Area.
You can select these tools either with the keyboard shortcut or from the Lumberyard Editor toolbar.
If you don't see the EditMode Toolbar, you can right-click an empty area of the menu or toolbar area and select EditMode Toolbar.
Each tool provides its own unique 3D visual representation, called a gizmo, on the selected object. The gizmo helps you identify the tool that is currently selected.
To select each tool, you can use your mouse to select it or use the following keyboard shortcuts:
- 1: Select
- 2: Move
- 3: Rotate
- 4: Scale
- 5: Terrain Area
Let us now experiment with each tool using 3D objects.
Place an Object
To place an object in the level you should use the Rollup Bar (right side).
- Click Brush to display your current loaded assets.
- Under the Browser section, in the directory tree, expand Objects > gettingstartedassets and select gs_block.
- Drag the gs_block object into the Perspective viewport.
When you place the gs_block you will notice that you are not completely free to place it where you want. That behavior is related to the snapping options (Follow Terrain and Snap to Objects, Snap to Grid, and Snap Angle).
- Snap to Objects is used when you want to attract one object to another.
- Snap to Grid is used when you want to attract one object to points along a customizable grid.
- Snap Angle is used when you want to attract one object using a specific angle.
- Follow Terrain is used when you want to move an object along a terrain rather than along a specific X, Y, or Z axis or plane. This feature is particularly useful when you want to place objects sitting directly on the terrain.
Both Snap to Grid and Snap Angle are on by default.
Selecting an object (or multiple objects) is the core of all game development stages. The Select gizmo is represented by a set of three lines (one for each X, Y, Z direction). You will notice that when Lumberyard detects the mouse over any object, that object is highlighted and therefore can be selected.
The Move tool selects and moves an object within the 3D world of the Perspective viewport. The Move gizmo is a set of three lines with arrowheads on the X, Y, and Z axis.
The Move gizmo also features three small right-angle squares along the XY, ZY, and XZ planes. To move your object along a given plane, click on the selected one of the small squares.
Note that you can also restrain the object movement by using the Lock options (Lock on X Axis, Lock-on Y-Axis, Lock on Z-Axis.
The Rotate tool selects and rotates an object. The Rotate gizmo is represented by a set of circles around the object along the X, Y and Z axis. To rotate an object, select one of the small circles and then rotate the object around that rotational plane.
The white circle surrounding the entire gizmo represents a rotation of the object related to the screen display.
The Scale tool can select an object and change its size. The Scale gizmo has cubes on the three axes (X, Y, and Z). To scale the object, select the X, Y, or Z line and then drag to modify its scale property.
The Terrain Area tool can select a terrain area. In the following figure the game is composed of two terrains: pool and townblock (available at: Brush objects > Objects > styletown > natural > terrain)
Accurately Move, Rotate, and Scale
Lumberyard provides you a way to accurately move, rotate, and scale any object. That option is available in the Viewport Controls section of Lumberyard (bottom).
These controls are exactly the same as the aforementioned Move, Rotate, and Scale; however, using them provides you a way to accurately move, rotate, or scale any object.
The Lumberyard Editor holds a collection of editor tools for building specific categories of content (such as Assets, Flow Graph, Material editors, scripts, and terrain editors, among many others). You can see a big picture of the editors by clicking on View > Open View Pane.
Another way to open the most commonly used editors is by using the editors toolbar. Note that this bar can be configured to add or remove editors.
You can change several Perspective viewport options using the Viewport Header and Viewport Controls.
Viewport Header enables you to:
- filter objects in the perspective viewport
- change the default field of view (FOV), Ratio, and resolution
- toggle amount of debug/display information, using the i icon
- toggle each individual entity icon and their visual guidelines, using the H icon
To change the FOV, Ratio, and resolution, you only need to right-click on that option and change the default value:
The Viewport Header has some additional "hidden" features that can be seen if you right click in an empty Viewport Header part.
You can play with those options and see the result in real time within the perspective viewport.
The Viewport Controls has two main properties: navigation speed and AI/Physics. The Speed setting displays the current movement speed setting. The AI/Physics button toggles the movement events for physics, AI (artificial intelligence), and particles in edit mode.
The major advantage of these modes is that you can test and view these events without entering game mode.
The Layers tab in the Rollup Bar helps you hierarchically organize your level content. You can use the toolbar on the Layers tab to interact with layers.
Each icon represents a specific action (in order): new, delete, rename, export, import, save external layers, and freeze.
Additionally, each layer has its own eye and arrow icons that help you manage objects. The eye icon toggles the layer visibility while the arrow icon toggles the ability to select objects in that layer.
Note that you can reorder your layers or event group them hierarchically by holding the Control key and dragging each layer to its next location.
Working With Layers and Their Files
When you create a new layer, that layer is stored as a file in the level\layers directory (inside your Lumberyard installation) with the extension .lyr.
To add content to a specific layer, you only need to select that specific layer. With that layer selected, you can create or add content, all of which are automatically created as a part of that layer.
Note that when you are working on a specific layer, you don't need to save the level file, but you do need to save the layer file. To save the layer file, click Save External Layers.
This feature is quite useful when you work with a team within the same level. Thus, each person can work on a specific layer and in the end one imports all layers to the final level.
Moving Assets Between Layers
Each Entity, Brush, or Designer object you place in the level is assigned to the currently selected layer. By default, and if you haven't created additional layers, all objects are placed in the default main layer. To assign an object to a different layer, you must:
- select the object in the Perspective viewport
- in the Rollup Bar, click the Objects tab
- click the Layers icon to display a list of all created layers
- select the destination layer from the list
Lumberyard provides you an Auto Backup feature. As the name suggests, it saves your level file incrementally, thus preventing any massive loss of your work. If you want, you can customize your Auto Backup settings by selecting File > Global Preferences > Editor Settings. Now select Files (under General Settings).
Three properties can be customized to your choice:
- the maximum number of backup saves (Maximum Save Backups)
- the default save directory (Standard Temporary Directory)
- save camera tag points (Auto Save Camera Tag Points)
This concludes this tutorial about the Lumberyard Editor. You learned how to create a new level and its properties. Then you learned the Lumberyard Objects and its essential tools. Finally, you discovered how to create, configure, and modify Layers.
If you have any questions or comments, as always, feel free to drop a line in the comments.