Unreal Engine 5.8 tutorial

Part 0 — Setup & orientation

Install Unreal Engine 5.8, create your first project, and learn the editor (Viewport, Outliner, Details, Content Browser) mapped to concepts software developers already know.

0.1 Hardware reality check

UE 5.8 with Nanite/Lumen is GPU-hungry. Practical minimum: a 6-core+ CPU, 32 GB RAM (16 GB will hurt), an SSD with 50+ GB free, and a GPU roughly RTX 2070 / RX 5700 or better. You can learn on less (turn Lumen off), but compile and editor-load times scale with everything.

0.2 Install

  1. Get the Epic Games Launcher from unrealengine.com, sign in / create an Epic account.
  2. Launcher → Unreal Engine tab → Library+ → choose 5.8.
  3. In the install options, you can deselect platform targets you don’t need (e.g. console SDKs) and editor debug symbols to save disk. Keep Starter Content and Templates.
  4. Optional but recommended for later: install Rider for Unreal or Visual Studio 2022 (with the “Game development with C++” workload) if you’ll write C++. On Mac, Xcode.

0.3 Create a project

Launch the engine → the Project Browser opens.

  • Category: Games.
  • Template: for the WISP capstone you’ll create a Third Person project in 0.6 (it gives you a working character to extend in Part 5, and Paper2D is just a plugin you add for the Part 3 2D prototype). Other templates worth knowing: First Person, Top Down, Blank, and Vehicle. (UE5 dropped the old 2D Side Scroller template — in UE5 you do 2D with the Paper2D plugin.)
  • Project Defaults: choose Blueprint or C++. You can add C++ to a Blueprint project later, so Blueprint-first is fine.
  • Quality: Maximum for desktop; Raytracing/Lumen can be toggled per-project later.
  • Starter Content: include it — it gives you free meshes/materials to prototype with.
  • Pick a path with no spaces or unicode in it, and keep it short (Windows path-length limits bite UE projects).

0.4 The editor, mapped to things you know

When the editor opens you’re looking at the Level Editor. The panels:

  • Viewport — the 3D/2D scene view. WASD + right-mouse to fly (hold RMB). F frames the selected object. This is your “render preview.”
  • Outliner (top-right) — the scene graph. Every object placed in the world (an Actor) is listed here. Think DOM tree.
  • Details panel (right) — the inspector for whatever is selected. Properties exposed from C++/Blueprint show up here.
  • Content Browser (bottom) — your project’s asset database on disk. Everything (meshes, textures, Blueprints, levels, sounds) is an asset file under Content/.
  • Bottom toolbar / Output LogWindow → Output Log is your console.log. Live with it open.

Key mental note: a Level (a.k.a. a Map, .umap file) is a scene. The world is the running container of Actors. When you press Play (the ▶ button, or Alt+P), the editor spins up a game world (“PIE” — Play In Editor), instantiates Actors, and runs the game loop. Esc or Shift+F1 to get your mouse back.

0.5 Saving and the Content folder

Ctrl+S saves the current level. Ctrl+Shift+S (“Save All”) saves dirty assets too. Assets are not saved automatically when you edit them — get into the habit. Under the hood your project is:

MyProject/
  MyProject.uproject      # JSON manifest: engine version, plugins, modules
  Config/                 # .ini files - engine & project settings
  Content/                # all your assets (.uasset, .umap) - this is the game
  Source/                 # C++ source (only if it's a C++ project)
  Plugins/                # drop-in modules
  Saved/ Intermediate/ DerivedDataCache/  # generated - safe to delete, gitignore these

0.6 Create the WISP project & put it under source control

Everything in this tutorial builds one project. Create it now so every later part has a home, and commit it before you build anything — that’s your safety net, and it’s required before you let an AI agent touch the project in Part 8.

  1. New project: Project Browser → GamesThird Person; Project Defaults = Blueprint; Starter Content on; Quality = Maximum. Name it Wisp on a short, space-free path. The Third Person base ships BP_ThirdPersonCharacter, which you extend into the 3D Wisp in Part 5.
  2. Enable plugins: Edit → Plugins → turn on Paper2D (for the Part 3 2D prototype). Enhanced Input is already the default input system. Restart the editor when prompted.
  3. Make your content root: in the Content Browser create Content/_Wisp/ with sub-folders Maps/ Blueprints/ Characters/ UI/ Audio/ VFX/ Data/. The leading underscore sorts your work to the top.
  4. Initialise Git + Git LFS from a terminal in the project root. UE assets are large binaries, so LFS is not optional:
git init
git lfs install
# Track Unreal's binary asset types in LFS (writes .gitattributes - commit it):
git lfs track "*.uasset" "*.umap"

Add a .gitignore that excludes only the generated folders (the fuller version is in Part 10). Note that Build/ is kept — it can hold platform icons and packaging config you need:

# Generated - never commit
Binaries/
DerivedDataCache/
Intermediate/
Saved/
.vs/
# Keep (commit these): Config/ Content/ Source/ Plugins/ Build/ *.uproject .gitattributes
git add .
git commit -m "Empty Wisp project (Third Person + Paper2D)"

Every milestone in this tutorial becomes a commit — that is your undo button when an experiment (or an AI agent in Part 8) goes wrong. Once set up, you can also commit from inside the editor via the Revision Control menu. Because .uasset/.umap are binary and Git can’t merge them, coordinate so two people never edit the same Blueprint at once — Git LFS file locking (or Perforce’s exclusive checkout) solves this on a team.

Exercise 0 — WISP milestone

Create the Wisp project (Third Person, Blueprint, Starter Content) and enable Paper2D as in 0.6, then set up the Content/_Wisp/ folders. Drag a couple of StarterContent/Props meshes into the viewport and move/rotate/scale them with the W/E/R gizmos; press Play, fly around, press Esc — that’s 80% of the navigation you’ll ever need. Finally, initialise Git + LFS and make your first commit. You now have the single project every later part builds on, safely under version control.