A common question that is usually asked about the CryENGINE is how does one developer work on the same level as another at the same time. The answer is—Layers. In this recipe, we will show you how you may be able to utilize the layer system for not only your own organization, but to set up external layers for other developers to work on in parallel.
My_Level
open inside of Sandbox (after completing either the Terrain sculpting or Generating a procedural terrain recipe). ActionBubble_01
Now in your build
folder, go to the following location: -... GameLevelsMy_Level
. From here you will notice a new folder called Layers
. Inside that folder, you will see ActionBubble_01.lyr
.
This layer shall be the layer that your other developers will work on. In order for them to be able to do so, you must first commit My_Level.cry
and the Layers
folder to your repository (it is easiest to commit the entire folder).
After doing so, you may now have your other developer make changes to that layer by moving Box1 to another location. Then have them save the map.
Have them commit only the ActionBubble_01.lyr
to the repository. Once you have retrieved it from the updated repository, you will notice that Box1 will have moved after you have re-opened My_Level.cry
in the Editor with the latest layer.
External layers are the key to this whole process. Once a .cry
file has been saved to reference an external layer, it will access the data inside of those layers upon loading the level in Sandbox.
It is good practice to assign a Map owner who will take care of the .cry
file. As this is the master file, only one person should be in charge of maintaining it by creating new layers if necessary.
Here is a list of limitations of what external layers cannot hold.
Even though any entity/object you place in your level can be placed into external layers, it is important to note that there are some items that cannot be placed inside of these layers. Here is a list of the common items that are solely owned by the .cry
file:
.cry
file must regenerate AI if new markup is created on external layers)18.217.107.229