The Editor
The Editor
The Lumberyard Editor has a familiar feeling to most game engines, and has similarities with the Unity editor.
The basic components in Lumberyard are also similar to Unity.
Lumberyard Window | Unity Window | Description |
---|---|---|
Entity | GameObject | An Entity is equivalent to a GameObject. Each entity is identified by its EntityId, Unity has ids for GameObjects but they aren't viewable by the developer. |
Level | Scene | An Level is equivalent to a Scene. |
Entity Inspector | Inspector | Displays the information of an entity, including name, transform and components. Tags in Unity are part of the inspector on a GameObject, where in Lumberyard there is a Tag component which allows for multiple tags. |
Perspective Viewport | Scene/Game | The perspective viewport is both where entities can be edited/modified and the view when the game is in play mode. Unlike Unity, there can only be one of these windows, so there can't be multiple views of the level at any instance. Bundling the windows into one helps with performance in the editor because nothing is rendered twice. This also helps newcomers from having the confusion of why the can't select certain objects because they are clicking the game window not the scene window. In addition, Lumberyard doesn't support live-editing while the game is running, so having the 2nd window for that reason isn't necessary. This will take some getting used to from Unity developers. |
Entity Outliner | Hierarchy | Contains all the entities the level. The eye button can be used to hide elements while editing, however it is NOT equivalent to the Unity disable checkbox. A hidden entity in Lumberyard will be unhidden in play mode, to deactivate an entity in Lumberyard you cannot use the eye. The lock icon, locks the entities from being clicked on in the in the level and deleted, however it still can be edited from within the Entity Inspector. |
Asset Browser | Project | Contains all the assets of the specific project, and in Lumberyard, contains Editor and Engine folders which have assets available to all projects. |
Keys: 1, 2, 3, 4 | Keys: Q, W, E, R | These correspond to the same actions, respectively, for transformations. |
Console | Console | Effectively the same, however Lumberyard sends engine messages to the console so it can become quickly cluttered. There are built in keyboard shortcuts for the console, where in Unity you must program your own. |
Debug Views/Statistics | Debug Views/Statistics | Both have debug views, such as wireframe, however Lumberyard has many more located in the toolbar. Lumberyard also has statistics available on screen about the game as well as in a separate application, Gridmate. The debug views in Lumberyard can also hide debug shapes (such as colliders). |
Goto Entity (z) | Frame Selection (f) | Unity pans the editor camera to the object, Lumberyard does a jump cut; both put the focus on the entities that have been selected. |
Camera Movement
The navigation in the Unity editor is focused mainly on mouse movement and rotating about a GameObject/panning, with the secondary movement of the fly-through cam. Lumberyard’s movement is similar to Unity’s fly-through cam, but closer resembles a first-person shooter (FPS) controller. Unity’s fly-through cam in (Lumberyard’s default FPS movement) has functionality of moving the camera vertically with the Q/E keys, which Lumberyard is desperately missing. However, Lumberyard has features which Unity is also missing, the ability to set the camera’s movement speed. Unity allows you to hold shift to increase speed, however lacks the ability to change the granularity of speed. Lumberyard’s camera also has the ability to enable collisions in the perspective editor, which stops the camera from passing through objects with colliders or the terrain as the camera moves about the level.
GameObject vs. Entity
Unity classifies objects in the scene as GameObjects, creating a new, empty GameObject within the scene assigns a transform to an object and allows for other components to be attached. Lumberyard uses the terminology of entity, to match computer science terminology of the component-entity-system. Entity and GameObject are essentially the same.
Adding components in Unity and Lumberyard is essentially the same, both categorize components and allow developers to modify component parameters. In Lumberyard, creating a Gem allows you to create a component which is built into the engine much like the prebuilt components. Developers can create their own grouping as well as icon for the component, and assigning to an entity is the same for assigning a C# in Unity. Creating a Lua Script is similar to C# scripts, however to assign a Lua Script to an entity requires a Lua Script component then assigning a the script to the script property, an additional step which is tedious but differentiates Lua and C++ code.
Prefabs vs. Slices
Lumberyard has prefabs and slices, however a prefab is a deprecated CryEngine feature so for the remaining of the paragraph prefab will refer to Unity’s prefabs. A Unity prefab is similar to a slice, however slices have the additional functionality of being able to be nested. Just as in Unity, entities cannot be reassigned to a slice when detached or duplicated. A slice save file can also not be overwritten from the editor like Unity prefabs. Where in Unity any GameObject can be dragged over a prefab to overwrite that prefab, once a slice is created the slice save file cannot be overwritten. The process of saving slices is more involved than just “applying” the changes. Within the Entity Outliner, right clicking the slice will allow you to quickly save the slice or advanced overrides, which allows you to specify which features should be pushed to slice (including added/deleted entities).
Folder/File Management
In Unity files can be moved and folders created to organize your project from within the editor. In Lumberyard folder management must be done in the file explorer and cannot be done in the editor. This stops files from being moved into/out of the editor/engine folders, but the main reason is because of Lumberyard’s Asset Processor which processes files for correctness and specifies the location of the file.
In Unity meta files are generated for each type of file, however Lumberyard doesn’t have a meta file generated within the project. There may be some files generated in the cache directory and Lumberyard does generate .assetinfo files for models.
UnityPackage (Packaging/Exporting Assets)
There is currently no way of bundling assets in Lumberyard like a UnityPackage. If the same folder structure isn’t maintained after transferring information or all dependencies aren’t passed, data will most likely be corrupted, such as script assignment and animator data. Gems were a suggested alternative, however seem to suffer the same consequences. After talking directly with a Lumberyard support employee, the only method Lumberyard recommends is transferring through version control. Although this may be intuitive to do always, there are some use cases for transferring through harddrive which we are hoping Lumberyard address in future release.
Asset Store
Unity has the Unity Asset Store which provides developers with art and code assets created by Unity developers as well as the community. While this resources doesn’t exist in Lumberyard, the engine does come packaged with a few projects which can act as templates, as well as having free scripts and art assets which can be adapted to the project.
Engine Feature Support
Most SDKs developed are targeted for Unity/Unreal, and the asset store helps the community develop features and new SDKs. Since Lumberyard doesn’t have that support yet it lacks integration with some major software such as Houdini. However, Lumberyard has the advantage of being an Amazon product and so it has direct integration with AWS and Twitch. From a brief search of Twitch with Unity, there are assets however they are paid versus Lumberyard’s free integration. In addition adding to the Amazon services is allowed because it is bundled with the engine code.