Skip to main content

🗺️ Understanding Levels

Think of Levels as the containers that hold your game worlds. They're like the stages in a theater production—each one is a complete environment where your interactive experience takes place. Let's explore how Unreal Engine organizes and manages these virtual spaces.

🎯 Learning Objectives

By the end of this lesson, you will be able to:

  • Define what a Level is in Unreal Engine and its purpose
  • Differentiate between persistent levels and streaming levels
  • Explain strategies for organizing complex game worlds using multiple levels
  • Navigate and use the World Settings panel
  • Create and save new levels in your project
  • Apply best practices for level organization in real projects

Estimated Time: 30-40 minutes

Prerequisites: Lesson 1.4 - The Unreal Editor Interface

📑 In This Lesson

What is a Level?

Imagine you're building a museum. Each room contains different exhibits—ancient artifacts in one room, modern art in another, dinosaur fossils in a third. The building itself is your project, but each room is a distinct space with its own contents, lighting, and purpose. In Unreal Engine, a Level serves a similar role: it's a self-contained space that holds all the objects, lighting, and environmental elements for a particular scene or area.

📖 Definition

Level: A Level (also called a "map") is a collection of all the objects, actors, lighting, and gameplay elements that make up a specific area or scene in your project. Think of it as a complete 3D environment file that can be loaded, modified, and saved independently.

When you create a new Unreal project, you always start with at least one level. This is your blank canvas where you'll place 3D objects, set up lighting, add interactive elements, and build your experience. Everything visible in your game at any given moment exists within a level.

What's Inside a Level?

A level contains several types of content, all working together to create your interactive environment:

  • Actors: Any object placed in the world—3D models, lights, cameras, sound sources, triggers, and more
  • Environment Settings: Lighting configuration, sky atmosphere, fog, and post-process effects that define the scene's mood
  • Gameplay Elements: Player start locations, spawn points, navigation meshes, and collision volumes
  • World Settings: Level-specific configuration like physics settings, gravity, and game mode rules

💡 Real-World Analogy

Think of a Level like a movie set. When filming a scene, everything you need for that particular location is assembled on one set: props, lighting rigs, actors, cameras, and sound equipment. When you move to a different scene, you might switch to a completely different set with different elements. Similarly, when your game transitions between areas, it loads a new level with all its unique content.

File Structure

Levels are saved as files with the .umap extension (short for "Unreal Map"). You'll find them in your project's Content folder, typically organized in a Maps or Levels subfolder. When you open a project, Unreal loads one of these .umap files into the editor, displaying all the actors and settings it contains.

✅ Pro Tip

Always organize your levels into a dedicated folder like Content/Maps/. This makes your project easier to navigate, especially as it grows larger with more levels. Professional studios often use naming conventions like ENV_ForestLevel or MAP_City_Downtown to make levels easy to identify at a glance.

Why Multiple Levels Matter

While you could build an entire game in a single level, there are compelling reasons to split your project into multiple levels:

  1. Performance: Loading and rendering everything at once is inefficient. Splitting your world into separate levels means the engine only loads what's currently needed, improving performance and reducing memory usage.
  2. Organization: Smaller, focused levels are easier to manage, especially when working with a team. One person can work on the forest level while another builds the cave system.
  3. Testing: You can quickly jump to specific areas to test gameplay without navigating through the entire world each time.
  4. Variety: Different levels can have completely different aesthetics, lighting, and gameplay styles—think of transitioning from a sunny village to a dark dungeon.
graph LR A[Game Project] --> B[Main Menu Level] A --> C[Tutorial Level] A --> D[Forest Level] A --> E[Cave Level] A --> F[Boss Arena Level] style A fill:#667eea,color:#fff style B fill:#f0f0f0,color:#333 style C fill:#f0f0f0,color:#333 style D fill:#f0f0f0,color:#333 style E fill:#f0f0f0,color:#333 style F fill:#f0f0f0,color:#333

Figure: A typical game project organized into multiple distinct levels

Persistent Levels vs. Streaming Levels

Unreal Engine offers two fundamental approaches to managing levels: persistent levels and streaming levels. Understanding the difference is crucial for building efficient, well-organized projects.

Persistent Levels

A persistent level is the "main" level that remains loaded throughout your game session. Think of it as the foundation or the base layer that's always present. When you create a new Unreal project and open a level, that's a persistent level—it's loaded when the game starts and stays in memory.

📖 Definition

Persistent Level: The primary level that is always loaded and serves as the foundation for your scene. Any streaming levels are loaded in addition to the persistent level, not instead of it.

Persistent levels typically contain:

  • Global Elements: Lighting sources that affect the entire world, like a directional light representing the sun
  • Game Logic: Blueprints that manage game state, player progression, or UI elements
  • Shared Assets: Objects or settings that need to exist regardless of which area the player is in

In a simple project with just one level, that level is persistent by default. But when you start working with multiple levels, you'll designate one as persistent and load others dynamically around it.

Streaming Levels

A streaming level (also called a "sub-level") is a level that can be loaded or unloaded dynamically during gameplay. This is where Unreal's level system becomes powerful for creating large, complex worlds.

📖 Definition

Streaming Level: A level that can be loaded into or removed from memory at runtime, appearing or disappearing in the world as needed. This enables seamless transitions between areas without loading screens and optimizes memory usage by only keeping relevant areas in memory.

Imagine you're building an open-world game with a city, forest, mountain, and underground dungeon. Loading all four areas simultaneously would consume enormous amounts of memory and slow performance. Instead, you'd use streaming levels:

  • The persistent level contains the sky, sun, and overall world settings
  • Streaming level 1: The city—loads when the player is nearby
  • Streaming level 2: The forest—loads as the player approaches, unloads when they leave
  • Streaming level 3: The mountain—loads and unloads based on proximity
  • Streaming level 4: The dungeon—loads only when the player enters
graph TD A[Persistent Level
Sky, Sun, Global Logic] --> B[Player in City] A --> C[Player in Forest] A --> D[Player in Mountains] A --> E[Player in Dungeon] B --> F[City Level
Loaded] B --> G[Forest Level
Unloaded] C --> H[Forest Level
Loaded] C --> I[City Level
Unloading] style A fill:#667eea,color:#fff style F fill:#4CAF50,color:#fff style G fill:#999,color:#fff style H fill:#4CAF50,color:#fff style I fill:#999,color:#fff

Figure: Streaming levels load and unload dynamically based on player location while the persistent level remains constant

When to Use Each Approach

Scenario Recommended Approach Reason
Small game or prototype Single persistent level Simplicity—no need for complexity when the entire world fits in memory
Large open world Persistent + streaming levels Performance—only load nearby areas to manage memory efficiently
Separate distinct areas (menu, levels) Multiple persistent levels Organization—completely different spaces that don't need to coexist
Team collaboration Streaming levels for each zone Workflow—team members can work on different levels simultaneously

⚠️ Watch Out

Don't confuse level streaming with scene transitions. Level streaming happens seamlessly in the background while the player moves around—there are no loading screens or pauses. Traditional level transitions (loading a completely different persistent level) typically show a loading screen. Modern games often use streaming to create the illusion of one continuous world.

How Streaming Levels Work

When you set up streaming levels, you can control when they load based on several factors:

  • Distance-based: Levels load when the player gets within a certain radius and unload when they move away
  • Blueprint-triggered: Your game logic explicitly loads or unloads levels in response to events (opening a door, completing a quest, etc.)
  • Always loaded: Some streaming levels can be set to load immediately with the persistent level and stay loaded—useful for shared geometry or lighting

Unreal handles the technical complexity of seamlessly blending actors from multiple levels into a single cohesive world. From the player's perspective, it all looks like one continuous environment.

Level Organization Strategies

As your projects grow in complexity, having a clear organizational strategy for your levels becomes essential. Let's explore common patterns used in professional game development.

Strategy 1: Linear Level Progression

This is the simplest approach and works well for games with distinct, sequential stages—think of classic platformers or action games where you progress from Level 1 to Level 2 to Level 3.

Structure:

  • MainMenu.umap - The starting point
  • Level_01_Tutorial.umap - First playable level
  • Level_02_Forest.umap - Second level
  • Level_03_Cave.umap - Third level
  • Level_04_Boss.umap - Climactic encounter

Pros: Simple to manage, easy to test individual levels, clear progression flow

Cons: Each transition requires loading a new level, less suitable for open-world designs

graph LR A[Main Menu] --> B[Level 1
Tutorial] B --> C[Level 2
Forest] C --> D[Level 3
Cave] D --> E[Level 4
Boss Fight] style A fill:#667eea,color:#fff style B fill:#f0f0f0,color:#333 style C fill:#f0f0f0,color:#333 style D fill:#f0f0f0,color:#333 style E fill:#4CAF50,color:#fff

Figure: Linear level progression with distinct stages

Strategy 2: Hub-and-Spoke

This pattern uses a central "hub" area that connects to multiple separate zones. Think of games like Dark Souls (Firelink Shrine) or Splatoon (Inkopolis Square), where you return to a central location between missions or areas.

Structure:

  • Hub_CentralTown.umap - The main persistent level
  • Mission_Forest.umap - Accessed from the hub
  • Mission_Desert.umap - Accessed from the hub
  • Mission_Ruins.umap - Accessed from the hub
  • Mission_FinalBoss.umap - Unlocked after completing other missions

Pros: Provides a sense of centralization, easy to add new content, players have a "home base"

Cons: Requires transitions between hub and missions, can feel repetitive if overused

graph TD A[Central Hub] --> B[Forest Mission] A --> C[Desert Mission] A --> D[Ruins Mission] A --> E[Shop/NPC Area] B --> A C --> A D --> A style A fill:#667eea,color:#fff style B fill:#f0f0f0,color:#333 style C fill:#f0f0f0,color:#333 style D fill:#f0f0f0,color:#333 style E fill:#f0f0f0,color:#333

Figure: Hub-and-spoke pattern with a central location connecting to multiple zones

Strategy 3: Open World with Streaming

Modern open-world games use this approach to create vast, seamless environments. A single persistent level contains the overall world settings, and numerous streaming levels represent different regions that load based on player proximity.

Structure:

  • World_Persistent.umap - Sky, lighting, global systems
  • Region_City_North.umap - Streaming level
  • Region_City_South.umap - Streaming level
  • Region_Forest_East.umap - Streaming level
  • Region_Mountains_West.umap - Streaming level
  • Region_Ocean.umap - Streaming level

Pros: Seamless exploration, no loading screens, feels like one continuous world

Cons: More complex to set up, requires careful optimization, harder to test individual areas

✅ Pro Tip

For open-world projects, consider using a grid-based naming system for streaming levels: World_X0_Y0.umap, World_X1_Y0.umap, World_X0_Y1.umap, etc. This makes it immediately obvious how levels connect spatially and helps when managing dozens or hundreds of streaming level tiles.

Strategy 4: Layered Levels

This advanced technique uses streaming levels not for different locations, but for different layers of the same space. For example:

  • Main_Persistent.umap - Base level
  • Layer_Geometry.umap - Buildings and landscape (always loaded)
  • Layer_Lighting.umap - All light actors (can be swapped for day/night)
  • Layer_Props.umap - Decorative objects and details
  • Layer_Audio.umap - Ambient sound sources
  • Layer_Gameplay.umap - Enemies, pickups, triggers

Pros: Excellent for team collaboration (artists work on geometry, designers on gameplay), easy to swap variations (day/night lighting)

Cons: Requires discipline to maintain separation, can be confusing for beginners

💡 Real-World Example

Large studios often use layered levels for cinematics. The base level contains the environment geometry, a lighting level provides the dramatic lighting setup, and a sequence level contains the animated characters and cameras. This allows the cinematics team to work independently from the environment artists without conflicts.

Choosing Your Approach

Which strategy should you use? Consider these factors:

  • Project scope: Small games can get away with simple linear progressions; large games need streaming
  • Team size: Solo developers might prefer simplicity; teams benefit from layered approaches
  • Performance targets: Mobile or VR projects need aggressive streaming to maintain frame rates
  • Genre conventions: Platformers often use linear levels; RPGs frequently use hub-and-spoke

Don't be afraid to start simple and evolve your structure as needed. Many projects begin with a single level and add streaming or multiple levels only when performance or organization demands it.

The World Settings Panel

Every level in Unreal Engine has a World Settings panel that controls level-specific configuration. Think of it as the "properties" for the entire level—settings that affect everything within that particular world.

Accessing World Settings

To open the World Settings panel:

  1. Open any level in the Unreal Editor
  2. In the main toolbar, click Settings (gear icon)
  3. Select World Settings from the dropdown

Alternatively, you can access it from the menu bar: Window → World Settings

The World Settings panel typically docks on the right side of the editor, where the Details panel usually appears. You'll see it has multiple collapsible categories with numerous options.

💡 Don't Confuse Them

The Project Settings affect your entire project across all levels. The World Settings only affect the currently open level. For example, you'd set your game's overall rendering quality in Project Settings, but you'd set this level's gravity or game mode in World Settings.

Important World Settings

Let's explore the most commonly used settings you'll encounter:

Game Mode

The GameMode Override setting determines which set of rules and logic applies to this level. Different levels can use different game modes—for example, your main menu might use one game mode, while gameplay levels use another.

  • What it does: Defines player classes, HUD, victory conditions, and gameplay rules
  • Common use: Setting a custom game mode for this specific level
  • Example: Using a "MainMenuGameMode" for your start screen, then a "FPSGameMode" for shooting levels

World Composition

For large open-world projects, the World Composition settings help manage streaming levels and world origin rebasing (a technique to prevent floating-point precision errors in massive worlds).

  • What it does: Automatically manages level streaming based on distance and handles coordinate system adjustments
  • Common use: Large-scale open worlds that exceed several kilometers
  • Example: An MMO-sized world where players can travel vast distances

Physics Settings

You can override global physics settings for this specific level:

  • Default Gravity Z: Controls how strong gravity is (default: -980 cm/s², which matches Earth's gravity)
  • Global Gravity Z: Applies gravity uniformly across the entire level
  • Example use: Creating a moon level with lower gravity (-162 cm/s²) or a zero-gravity space station

✅ Pro Tip

Unreal uses centimeters as its base unit, so gravity is measured in cm/s². Earth's gravity (-980 cm/s²) is roughly equivalent to 9.8 m/s² or 32 ft/s² in real-world units. If you want your characters to feel heavier or lighter, adjusting gravity is often more effective than changing character movement settings.

Kill Z (Death Plane)

The Kill Z setting defines a height below which actors are automatically destroyed. This prevents players who fall off the world from falling forever.

  • What it does: Any actor that falls below this Z-coordinate is destroyed
  • Default value: Usually set very low (like -10,000 cm below the world)
  • Example use: In a platformer, ensuring players respawn after falling into a pit

Default Reverberation Send

Audio settings that define how sound echoes in this particular level:

  • What it does: Controls the acoustic properties of the space (is it echoey like a cathedral, or dampened like a carpeted room?)
  • Common use: Different levels have different acoustic characteristics
  • Example: A cave level might have high reverb, while an outdoor forest has minimal reverb

Why World Settings Matter

World Settings allow each level to have its own "personality" and behavior. Your tutorial level might have lower gravity to help players learn jumping mechanics. Your boss arena might use a specific game mode with unique rules. Your underwater level might have different physics altogether.

As a beginner, you won't need to adjust most of these settings right away—the defaults work well for typical projects. But knowing they exist helps you understand how Unreal gives you fine-grained control over every aspect of your levels.

Creating and Saving New Levels

Now that you understand what levels are and how they're organized, let's walk through the practical steps of creating and managing levels in Unreal Engine.

Creating a New Level

Unreal Engine provides several ways to create a new level. Here are the most common methods:

Method 1: File Menu (Most Common)

  1. In the Unreal Editor, go to File → New Level in the menu bar
  2. A dialog box appears with template options:
    • Default: Empty level with basic lighting (directional light, sky atmosphere, fog)
    • Empty Level: Completely blank—no lighting, no sky, nothing
    • VR-Basic: Optimized starting point for VR projects
  3. Choose a template and click Create

💡 Which Template Should You Choose?

Default is usually the best choice for beginners. It provides a basic outdoor lighting setup so you can immediately see what you're building. Empty Level is literally pitch black until you add lights, which can be confusing when you're just starting out. Save "Empty Level" for advanced scenarios where you want complete control from scratch.

Method 2: Content Browser

  1. Open the Content Browser
  2. Navigate to the folder where you want to create the level (typically Content/Maps/)
  3. Right-click in an empty space
  4. Select Level → Empty Level or Level → Default
  5. The new level file appears—give it a meaningful name

This method is useful because it creates the level file directly in your chosen folder, keeping your project organized from the start.

Saving Your Level

After creating or modifying a level, you need to save it. Unreal uses two types of saves:

Save Current Level

  • Shortcut: Ctrl + S
  • Menu: File → Save Current Level
  • What it does: Saves only the currently open level

If this is the first time saving a new level, a dialog appears asking where to save it and what to name it. Choose a descriptive name like Tutorial_Level or Forest_Area_01.

Save All Levels

  • Shortcut: Ctrl + Shift + S
  • Menu: File → Save All Levels
  • What it does: Saves all levels currently loaded (useful when working with streaming levels)

⚠️ Save Early, Save Often

Game engines are complex software and crashes can happen. Get in the habit of pressing Ctrl + S frequently—especially after making significant changes. Unreal also has an auto-save feature (enabled by default every 10 minutes), but manual saves give you control over when snapshots are created.

Opening Existing Levels

To open a level you've previously created or one that came with your project:

  1. Method 1 (File Menu): Go to File → Open Level, then browse to the .umap file
  2. Method 2 (Content Browser): Navigate to your Maps folder, double-click the level's thumbnail
  3. Method 3 (Recent Levels): Go to File → Recent Levels to see a list of recently opened levels

When you open a different level, Unreal closes the current one (unless you're working with streaming levels). Any unsaved changes prompt a save dialog.

Level Naming Best Practices

Professional projects use consistent naming conventions. Here are some common patterns:

Convention Example Use Case
Descriptive names Forest_Clearing Immediately clear what the level contains
Prefix-based LVL_Tutorial_01 Groups all levels together in file lists
Numbered sequences Chapter_03_CaveEntrance Shows progression order
Grid coordinates World_X0_Y5 Open-world streaming tiles

Avoid generic names like Level1, NewMap, or Untitled. Future-you (and your teammates) will thank you for using clear, descriptive names.

🏋️ Hands-On Exercise: Create Your First Custom Level

Time to put your knowledge into practice! In this exercise, you'll create a new level from scratch, configure its settings, and save it properly.

Part 1: Create a New Empty Level

  1. Open your Unreal project (the one you created in Lesson 1.3)
  2. Go to File → New Level
  3. Select the Default template
  4. Click Create

You should now see a new level with a basic sky, sun (directional light), and fog. The viewport shows a simple blue gradient sky.

💡 Hint: Can't see anything in your viewport?

If your viewport is black or shows nothing, you might have accidentally chosen "Empty Level" instead of "Default." Press Alt + P to play in editor—if it's completely dark, that confirms it. Exit play mode and try creating a new Default level.

Part 2: Explore the Default Level Contents

  1. Look at the Outliner panel (usually on the right side)
  2. You should see several actors already placed:
    • Light Source (Directional Light): Represents the sun
    • Sky Atmosphere: Creates the blue sky gradient
    • Volumetric Cloud: Adds realistic clouds
    • Sky Light: Provides ambient lighting from the sky
    • Exponential Height Fog: Atmospheric fog for depth
    • Post Process Volume: Color grading and effects
  3. Click on each actor in the Outliner to see its properties in the Details panel

These are the building blocks of a basic outdoor environment. You don't need to understand them all yet—we'll cover lighting in Module 4.

🤔 Question: What happens if I delete the Directional Light?

Try it! Select "Light Source" in the Outliner and press Delete. The scene becomes much darker because you've removed the sun. Press Ctrl + Z to undo and bring it back. This demonstrates how levels are composed of individual actors working together.

Part 3: Access World Settings

  1. In the main toolbar, click the Settings button (gear icon)
  2. Select World Settings from the dropdown
  3. The World Settings panel appears (usually docking where the Details panel was)
  4. Expand the World category and find the Kill Z value
  5. Note the default value (probably something like -10000.000000)
  6. Try changing it to -5000 and press Enter

You've just adjusted the "death plane" for this level. Any actor that falls below Z = -5000 will be destroyed.

Part 4: Save Your Level

  1. Press Ctrl + S to save the level
  2. A "Save Level As" dialog appears
  3. Navigate to Content/Maps/ (create this folder if it doesn't exist)
  4. Name your level: MyFirstLevel
  5. Click Save

Your level is now saved! You can see it in the Content Browser under the Maps folder.

Part 5: Create a Second Level

  1. Go to File → New Level again
  2. This time, choose Empty Level
  3. Notice how different it looks—completely black viewport
  4. Save this level as MyEmptyLevel in the same Maps folder

Part 6: Practice Switching Between Levels

  1. In the Content Browser, navigate to Content/Maps/
  2. Double-click MyFirstLevel to open it—you see the outdoor environment again
  3. Double-click MyEmptyLevel—you see the black empty space
  4. Go to File → Recent Levels—both levels appear in the list

Congratulations! You've created, configured, saved, and navigated between multiple levels. These are fundamental skills you'll use in every Unreal project.

Solution Checkpoint: What should you have now?

You should have two .umap files in your Content/Maps/ folder:

  • MyFirstLevel.umap - Contains default outdoor lighting
  • MyEmptyLevel.umap - Completely empty
Both should appear in your Content Browser. If you don't see them, make sure you saved both levels (Ctrl + S).

Summary

In this lesson, you've learned the foundational concepts of how Unreal Engine organizes 3D worlds using levels. Let's recap the key points:

Key Takeaways

  • 📦 Levels are containers that hold all the objects, lighting, and gameplay elements for a scene or area
  • 🏗️ Persistent levels stay loaded at all times, while streaming levels load and unload dynamically
  • 🗺️ Organization strategies like linear progression, hub-and-spoke, open-world streaming, and layered levels help structure complex projects
  • ⚙️ World Settings control level-specific configuration like game mode, physics, and audio properties
  • 💾 Creating and saving levels is straightforward—use descriptive names and save frequently
  • 🎯 Different templates (Default vs. Empty) serve different purposes—Default gives you basic lighting, Empty gives you a blank slate

What's Next?

Now that you understand how levels work, the next step is populating them with content. In Lesson 2.2: Actors and Components, you'll learn about the building blocks that go inside levels—the objects, lights, sounds, and gameplay elements that bring your worlds to life.

✅ Self-Check Quiz

Before moving on, make sure you can answer these questions:

  1. What's the difference between a persistent level and a streaming level?
  2. Which level organization strategy would work best for a small linear platformer?
  3. Where do you find the World Settings panel, and what kinds of things can you configure there?
  4. What file extension do Unreal levels use?
  5. Why would you choose the "Default" template over "Empty Level" when creating a new level?
📝 Show Answers
  1. Persistent levels stay loaded throughout gameplay; streaming levels load and unload dynamically based on proximity or triggers.
  2. Linear level progression—separate .umap files for each stage that load sequentially.
  3. Settings menu (gear icon) → World Settings. You can configure game mode, gravity, kill Z, audio reverb, and more.
  4. .umap (Unreal Map)
  5. Default includes basic outdoor lighting setup so you can immediately see what you're building; Empty Level is completely dark until you add lights.