Packaging a project prepares it for distribution outside the editor. The File → Package Project menu targets platforms such as Windows (64-bit), with Unreal compiling content and cooking assets into a platform-specific format before producing a standalone executable and supporting files in a configured output directory. The Cook commandlet processes content for the target platform by converting assets to platform-specific formats, compressing textures, and stripping editor-only data. Editor builds include debugging tools and the editor itself, useful during development, while Shipping builds strip debug features, console commands, and logging for smaller, optimized retail binaries. The Project Launcher provides a single window to build, cook, and package for multiple platforms with options for maps to include, DLC, and distribution settings.
Common build issues can often be diagnosed by understanding the asset pipeline. Textures that appear blurry after packaging often indicate incorrect Texture Group LODBias settings or compression artifacts; setting Compression Settings to UserInterface2D for HUD textures or UserInterface for crisp icons avoids mip artifacts. Shader compilation hitching at startup can be mitigated by enabling Shader Compilation in Project Settings → Packaging so pre-cooked PSO files load quickly. The Derived Data Cache stores preprocessed asset data such as compressed textures and shader compilations, speeding up editor loading and build times by avoiding redundant processing. The Saved folder contains auto-generated logs, screenshots, crash dumps, save games, and the AssetRegistry, and is typically excluded from source control so the engine can regenerate it as needed.
Performance profiling is a daily activity in Unreal development. The stat unit command displays frame time, game thread time, render thread time, and GPU time in milliseconds, quickly revealing whether the project is CPU or GPU bound. stat fps adds a real-time FPS counter and frame time at the top of the viewport. stat GPU and Profile GPU break down GPU rendering cost by pass and draw call, exposing expensive materials, overdraw, or post-process bottlenecks. LOD bias globally adjusts when the engine switches to lower-detail models; increasing it forces earlier LOD switches for performance, while decreasing preserves detail at higher cost. Texture Streaming Pool Size in Project Settings → Rendering limits the total video memory allocated for streamed textures, with too small a pool causing blurriness and too large wasting memory. The Project Settings menu is the central hub for these global settings, with sections for Rendering, Physics, Packaging, Input, and Maps & Modes controlling everything from default classes to platform-specific options.