Unreal Engine 5 Starter template for Git. A correct git
setup example with git-lfs
for Unreal Engine 5 and Unreal Engine 4 projects.
This template implies some conventions to be used correctly, which are discussed below. You should be able copy and paste them into your project's README.md
if you want to.
If you are using
git
with Unreal Engine, you might want to also enable One File Per Actor feature, as it provides a more atomic level versioning flow.
/Build
/Config
/Content
/MyGame
/MyGameDLC_01
/Plugins
/Raw
/MyGame
/MyGameDLC_01
/Source
/Editor
/Game
git-lfs
management rules are mostly defined for file types, and not paths, however there can entire paths marked to be managed bygit-lfs
. Without a special note, expect only type-based rules apply to a directory.
Holds files needed for building the engine or game, including files necessary for creating platform-specific builds.
Configuration files for setting values that control engine behavior. Values set in the game project Config files override the values set in the Engine\Config
directory.
Holds content for the engine or game, including asset packages and maps.
Game plugins. Every plugin lives in a subdirectory of the /Plugins
dir. A plugin internal directory structure is not strictly documented, so there are no assumptions on how a plugin is structured.
It may be useful to use git submodules to manage plugins in a more robust manner.
It is expected that each plugin will have it's own .gitignore
file in it's subdirectory, as well other required specific git tweaks.
This directory is managed entirely by git-lfs
.
/Raw
is a directory where you store assets in their source formats, in contrast to /Content
, where assets are stored in the engine format (after the import). Having an asset in a source format is useful when you're still making updates to it. It may be a good idea to also have separate repos for managing work-in-progress assets (maybe in smaller collections or even idividually).
C++ source code is stored under the /Source
path. As with most other directories, this directory is managed by standard git (and not git-lfs
). That means no blobs. Do not put here any .dll
s, .exe
s, .zip
s and other binaries. Only text files are allowed.
Generated text files can reside in the local /Source
dir, but should be ignored by git with additional entries in .gitignore
.
Source files used by just the editor.
Source files in a game project directory are organized by module; one directory per module.
All game content is placed in a sub-folder. eg. Content/MyGame/UI/... This helps in migrating between projects and splitting your content from marketplace packs that are added like Content/MyMarketplacePack/...
When testing out local assets that are not ready to be used by other members of your team (or perhaps never should be) you can put them in your Developer-folder. You can enable this folder in the view options of the Content Browser. These assets will not show up in searches by other developers.
/MyGame
/AI
/Art
/Characters
/Environment
/Buildings
/Landscape
/Props
/Audio
/Data
/Music
/SFX
/Characters
/Core
/FX
/Art
/Input
/Actions
/Maps
/Development
/Movies
/Shared
/Materials
/UI
/Art
/Fonts
/Materials
Art related assets, except UI/FX.
Audio related assets. /Data
folder can be used for SoundClasses or any other sound related logic.
The core gameplay logic, such as GameInstance or GameMode.
Contains various particle effects.
All player input related logic.
Pre-rendered movies. This directory also used by the Async Loading Screen plugin.
Commonly used resources, such as Master Materials.
Any UI related content, logic and resource.
It’s recommended to use a dedicated Marketplace content project to import the packs first. This is your staging area before migrating pieces into your main project. This lets you review and filter out unwanted content early.
- Set up
git
andgit-lfs
. - Copy the files and folders to your project. All of them in one go or selectively as you wish.
- Rename directories starts with
MyGame
to your project's name.