🗺️ 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:
- 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.
- 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.
- Testing: You can quickly jump to specific areas to test gameplay without navigating through the entire world each time.
- Variety: Different levels can have completely different aesthetics, lighting, and gameplay styles—think of transitioning from a sunny village to a dark dungeon.
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
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 pointLevel_01_Tutorial.umap- First playable levelLevel_02_Forest.umap- Second levelLevel_03_Cave.umap- Third levelLevel_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
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 levelMission_Forest.umap- Accessed from the hubMission_Desert.umap- Accessed from the hubMission_Ruins.umap- Accessed from the hubMission_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
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 systemsRegion_City_North.umap- Streaming levelRegion_City_South.umap- Streaming levelRegion_Forest_East.umap- Streaming levelRegion_Mountains_West.umap- Streaming levelRegion_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 levelLayer_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 detailsLayer_Audio.umap- Ambient sound sourcesLayer_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:
- Open any level in the Unreal Editor
- In the main toolbar, click Settings (gear icon)
- 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)
- In the Unreal Editor, go to File → New Level in the menu bar
- 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
- 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
- Open the Content Browser
- Navigate to the folder where you want to create the level (typically
Content/Maps/) - Right-click in an empty space
- Select Level → Empty Level or Level → Default
- 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:
- Method 1 (File Menu): Go to File → Open Level, then browse to the .umap file
- Method 2 (Content Browser): Navigate to your Maps folder, double-click the level's thumbnail
- 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
- Open your Unreal project (the one you created in Lesson 1.3)
- Go to File → New Level
- Select the Default template
- 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
- Look at the Outliner panel (usually on the right side)
- 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
- 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
- In the main toolbar, click the Settings button (gear icon)
- Select World Settings from the dropdown
- The World Settings panel appears (usually docking where the Details panel was)
- Expand the World category and find the Kill Z value
- Note the default value (probably something like -10000.000000)
- Try changing it to
-5000and 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
- Press Ctrl + S to save the level
- A "Save Level As" dialog appears
- Navigate to
Content/Maps/(create this folder if it doesn't exist) - Name your level:
MyFirstLevel - 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
- Go to File → New Level again
- This time, choose Empty Level
- Notice how different it looks—completely black viewport
- Save this level as
MyEmptyLevelin the same Maps folder
Part 6: Practice Switching Between Levels
- In the Content Browser, navigate to
Content/Maps/ - Double-click
MyFirstLevelto open it—you see the outdoor environment again - Double-click
MyEmptyLevel—you see the black empty space - 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 lightingMyEmptyLevel.umap- Completely empty
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:
- What's the difference between a persistent level and a streaming level?
- Which level organization strategy would work best for a small linear platformer?
- Where do you find the World Settings panel, and what kinds of things can you configure there?
- What file extension do Unreal levels use?
- Why would you choose the "Default" template over "Empty Level" when creating a new level?
📝 Show Answers
- Persistent levels stay loaded throughout gameplay; streaming levels load and unload dynamically based on proximity or triggers.
- Linear level progression—separate .umap files for each stage that load sequentially.
- Settings menu (gear icon) → World Settings. You can configure game mode, gravity, kill Z, audio reverb, and more.
- .umap (Unreal Map)
- Default includes basic outdoor lighting setup so you can immediately see what you're building; Empty Level is completely dark until you add lights.