# Process: Level Building, Playing & Packaging

{% hint style="info" %}
You are reading an old article for Unreal Engine 4 - it should still work for Unreal Engine 5 though!
{% endhint %}

## Overview

This article covers the process of a project, particularly on building, playing and packaging.

## Project Creation

Unreal Engine provides a series of template files with various pre-sets with reliable parameters and native Unreal Engine content to start. Upon starting a New Project:

![Figure 1.0 - Project Creation](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-LYxuQanshTJNl5IgJQl%2F-LYxuiMWUitKAe6ZZ42Z%2Ffigure%201.0%20project%20creation.png?alt=media\&token=796caced-f2f2-4c12-8957-9ce95ed84fe0)

1. Using Blueprint, select a Template File.
2. Confirm the type of Template that this is and whether the starting content is appropriate for the intended experience.
3. Choose the target hardware: **Desktop/Console** or **Mobile/Tablet.**\
   Unreal Engine will automatically optimise content for this choice.&#x20;
4. Choose a quality level: **Maximum** or **Scalable** quality.\
   Desktop/Console experiences should target *Maximum* quality, while Mobile/Tablet should target *Scalable* quality, however if the intended experience is very dynamic and graphically intensive, consider using Scalable.\
   Both the target hardware and quality setting can be tweaked under `[Edit > Project Settings > Target Hardware]` in the future.
5. Begin the project with *Starter Content* enabled or not. Unreal Engine *Starter Content* consists of some basic architectural, environmental and prop assets and materials.&#x20;
6. Choose a directory and filename (folder name) for the project. This will be the location where the project files will be created as well as the structure for the *Content Browser*.
7. `[Create Project]` to finalise the settings and create the project. Upon creation being finished, Unreal Engine proper will launch automatically.

### Additional Unreal Engine Resources

Unreal Engine also has built-in resources available other than the Starter Content. For example, the basic controllable basic sky Blueprint can be found in this content.

![Figure 1.1 - Unreal Engine Resources](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-LYxuQanshTJNl5IgJQl%2F-LYxunozqJP-yIB9hXgQ%2Ffigure%201.1.png?alt=media\&token=17037020-42bb-4940-b260-1346716dc204)

1. In the *Content Browser*, `[View Options > Show Engine Content]` to enable the content.
2. Toggle the *Sources* Panel
3. *Engine Content* should now be available to browse through.
4. Be wary of which content source you are searching for resources from. The default *Content* folder is where user content is located.

## Level

### Level Creation

To begin creating an experience, a Level needs to be created or used. If a Level has not been made available yet, do so via `[RMB]` in the content browser to create a level.&#x20;

![Figure 2.1 - Level Creation](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-LYxuQanshTJNl5IgJQl%2F-LYxuueALB80ev1A1IRN%2Ffigure%202.1.png?alt=media\&token=db2169f4-c7da-405c-9ccc-a2c7a48cc55e)

### Level Building & Design

From here, you can add actors of geometry, lights and effects to the level, and interactive elements and actor behaviours to complete the experience.

![Figure 2.2 - Level Design](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-LYxuQanshTJNl5IgJQl%2F-LYxv0VNiUA4zhRr_W_e%2Ffigure%202.2.jpg?alt=media\&token=3c3cf4ec-1102-4741-a766-e58da47c2e36)

## Building&#x20;

Building is the process that forces the Engine to compile the level so that it runs properly.&#x20;

Building pre-computes all static elements; the lighting data and builds light maps, navigation data and geometry data, this is done to avoid needing the Engine to waste resources dynamically calculating content that will not change.

The engine will let you know when a rebuild is required, usually after an instance of new information added or tweaked in the scene, such as a new light source, new geometry or a change in material.

### Building Lighting

When lighting is being built, the default process is to send the data off to the Cloud to render. During this time, any edits made to the lighting and materials will not be reflected, requiring another Build afterwards.

### Debugging

![Figure 3.2 - Debugging](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-LYxuQanshTJNl5IgJQl%2F-LYxv8-9v4E_91pf6Z4M%2Ffigure%203.2.png?alt=media\&token=b0203991-1c53-45d1-9fe4-3e983a922084)

Upon errors, the Message Log will pop up automatically. (The Message Log can usually be found through `[Window > Developer Tools > Message Log]` )

This logger documents all errors and their possible reasons.&#x20;

## Playing

**Playing** is a concept captured in the `[Play]` menu in the *Toolbar*.&#x20;

The `[Play]` tool, `[or keybinding Alt + P]` allows you to test the current level by automatically placing you in control of the camera/generating a camera.&#x20;

**Modes** changes the default behaviour of the `[Play]` button, with the main modes being:

**\[Play in Editor]** is the default Play action, automatically possessing a player.

**\[Simulate]** plays the game without possessing a player, enabling you to debug and test from a different point of view. This can also be accessed by pressing `[Shift + 1]` to regain mouse control during *Play in Editor* and clicking `[Eject]`.

**\[VR Preview]** is available if a VR headset has been set up.

### Debugging

As a subset of Playing, if there are any errors that arise when playing your experience, it is necessary to find out where these errors may lie. This is an especially prominent process if blueprints/code is being used.

## Packaging

Packaging prepares your project for ease of distribution, providing a folder with an .exe that can now run outside of Unreal Engine.

### Package Project

1. `[File > Package Project]`
2. `[Build Configuration > Shipping]`
3. Enable Full Rebuild through `[Packaging > Project > Check Full Rebuild]`
4. Confirm the startup map through `[Map & Modes > Default Maps > Game Default Map]`
5. Return to `[File > Package Project]`
6. Choose the appropriate platform
7. Go through the Saving dialogue

This will output a project folder with a .exe file that can copied and distributed, and ran on a VR-enabled machine. **This folder and its contents must be kept together.**

### Platforms

The HTC VIVEs at MSD run on Windows Machines, this should be the chosen platform for export.

### Full/Partial Rebuild

When iterating builds to the same folder, Unreal Engine by default only modifies files that have been changed. During development it is recommended to turn off full rebuild to save time, but the final project should go through a Full Rebuild to be safe.

1. Toggle Full Rebuild through `[File > Packaging Settings > Toggle Full Rebuild]`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ms-kb.msd.unimelb.edu.au/next-lab/virtual-reality/guides/vr-development-overview/unreal-engine-overview/unreal-engine-primer/process-level-building-playing-and-packaging.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
