CrazedFan Games
  1. Posts/

Devlog 0009 - How to structure content in an Unreal Engine 5 project

·3 mins

When I started working seriously with Unreal Engine, I wanted to structure content following best practices. The bad news is there is no industry standard. Still, I’ve found some good advice I’ll share in this post. But first, the essential things.

First, a Family Update #

Since my last post, my daughter has turned seven, my mother has moved in with my family, and work has gotten quite crazy. However, everyone has been healthy and happy, and for that, I am thankful. Work will continue to be quite demanding of my time; however, I have recently returned to learning how to produce my game, a hobby that is also quite demanding but makes me happy.

Exploring Epic’s Lyra Starter Game Project #

Epic created the Lyra Starter Game, which we can look to as a simple example that may be a great place to begin. The following directories are located at /Content:

/Audio
/Characters
/ContextEffects
/Editor
/Effects
/Environments
/Feedback
/GameplayCueNotifications
/GameplayEffects
/Input
/Legal
/Localization
/PhysicsMaterials
/System
/Tools
/UI
/Weapons

The Lyra example presented above groups assets by their type. This technique is similar to how I started organizing web projects eons ago with a directory for my css and js files, for example. As I matured as a software engineer, I discovered it was better to group things by their domain. I see a similar approach to some studio projects I’ve glimpsed.

Exploring A Studio Project Example #

Different studios will have their structures. They probably have conventions that allow their automated tools to take care of chores that drive their system. Consider the following example lifted from a design document that describes the location of a small power station blueprint: /Game/ProjectDawn/Factories/SmallPowerStation/BP_SmallPowerStation01. The design document shown below was lifted from the Twitter of @GisliKonradsson. Gisli served as Creative Director and Co-Founder of Arctic Theory at the time this document was published.

This document is an excellent example of a solid design document (or product requirement) that allows for lots of creative freedom while clearly specifying the desired outcome. Of course, it also shows how this team organizes by domains – they have Factory things grouped.

Their directory structure might look something like this:

/Characters
/Effects
/Maps
/Materials
/Weapons

/Factories
/Offices
/Prisions
/ScienceLabs
/Warehouses
/etc...

Design Document from @GisliKonradsson on Twitter

Keep it Simple #

My guidance is to have a flat structure as much as possible – if you nest more than three directories, you’ve probably overcomplicated things. Next, find the domains for your game and group them. Everything has a domain – including global assets. Finally, I strongly recommend following the Unreal Engine 5 Style Guide published here: https://github.com/Allar/ue5-style-guide. Following these naming conventions will help you with automation as your small project becomes a larger project and your single-player hobby becomes a multi-player creative adventure. Because the studio’s design doc followed these style guidelines, I could tell that the asset they describe is a Blueprint immediately.

So, in conclusion, keep your content structure flat and clean. Organize by domains. But, definitely follow asset naming conventions published in the linked style guide.