Level Design

From ARK Modding Wiki
Jump to navigation Jump to search

Original Source

Level Development Guidelines

TheIsland.umap is the main map for the game. It should be considered a LIVE map and therefore work-in-progress content that is not tested can cause myriad issues with gameplay and client / server stability.

The following guidelines should be adhered to for all development work.

Sub-Levels

Most content sub-levels are streamed automatically by World Composition based on a rough grid from A1 in the north west (top left) corner of the map to E5 in the south east (bottom right - coming soon) :

Png;base64a387b46fb396135b.png

For global content performance management two types of sub-levels are created, Far and Near:

FAR

Only content that can be seen from a distance should be placed in the Far sub-levels because they are rarely streamed out. Currently this consists only of large foliage trees and up to 20 large StaticMesh rocks per sublevel. The naming convention suffix is _Far at the end of the level name: A1_Far

NEAR

Everything else goes in Near sub-levels which are streamed based on distance as part of the NearStreaming_Distance20000 layer. This includes rocks (that are not large terrain meshes), all medium and smaller trees, plants, detail meshes, etc. The naming convention is _Near at the end of the level name: A1_Near

Work-In-Progress Levels

All levels that are not tested and ready for server deployment should be set to use the ManuallyStreamed Layer.


Near and Far grid levels that are in development should be saved as a copy alongside the current live levels with an additional identifying suffix. For example:

  • A1_Far
  • A1_Far_WIP
  • A1_Near
  • A1_Near_WIP

No levels should ever be promoted into the live streaming system unless they have been tested internally by the design team.

Testing Locally

Work-in-progress levels can be tested locally by doing one of the following:


  1. Placing the level in the Uncategorized layer, which will cause it to be automatically loaded.
  2. Deleting the corresponding live level and temporarily renaming the work-in-progress level without committing the deletion to source control (also temporarily assigning the level to the appropriate streaming layer, if applicable).

Remember the guidelines above, and never ever ever commit a work-in-progress level as a live level unless it has been tested and approved by the internal development team!

Foliage

The Foliage system is used to render the majority of static gameplay content so we can take advantage of instanced rendering and culling.

Foliage Settings

Foliage Saved Settings are used to store crucial gameplay data and performance settings related to Harvesting, Culling and Collision. This metadata is referenced identically for every asset that uses the saved settings.


When placing assets with the Foliage tool, make sure proper saved settings are assigned - we have made a modification to the engine to prevent placement of foliage that does not use saved settings. Before creating new saved settings, make sure there are not already saved settings for the asset. Although Foliage Settings can traditionally be used as presets for Foliage Painting settings, please do not create duplicate Foliage Settings at this time!