Quels fichiers de projet Unreal Engine 4 puis-je ignorer dans le contrôle de code source?

30

Je veux mettre un projet Unreal Engine 4 sous contrôle de source avec git. (Je sais que l'éditeur prend en charge Perforce et Subversion, mais je m'en moque.)

Quels dossiers et fichiers dois-je inclure dans le référentiel et lesquels puis-je ignorer?

La façon dont je le vois, ce qui suit est nécessaire: Config, Content, Source, *.sln,*.uproject

Les choses que je peux passer sous silence: Binaries, DerivedDataCache, Intermediate, Saved, *.suo, *.sdf,*.opensdf

Est-ce correct?

rioki
la source
2
S'il y a un .sln, il y a généralement un fichier .vXX.suo (qui est généralement invisible) que vous voudrez peut-être ignorer car il contient des options spécifiques à l'utilisateur.
Josh
2
Github gère une liste de fichiers ignorés pour divers projets. Il n'y a pas encore d'entrée pour Unreal4. Si vous trouvez la liste parfaite, vous devriez peut-être soumettre une demande d'extraction pour l'ajouter ici.
Seth Battin
J'ai déjà ignoré les fichiers temporaires VS, mais merci de le rendre évident pour tout le monde. J'ai modifié la question pour refléter cela.
rioki
@rioki Quelle est votre impression de travailler avec git? Hier, c'était la première fois que je travaillais avec UE et économiser le niveau simple utilisait 500 Mo d'espace disque dur. C'est trop de données pour que git se synchronise.

Réponses:

17

J'utilise GitHub pour Windows qui génère un joli gitignore ignorant la plupart des fichiers étrangers comme les fichiers journaux ou les fichiers spécifiques à VS qui n'ont pas besoin d'être partagés.

D'après ce que je peux rassembler de cette page dans les documents Unreal , vous pouvez probablement ignorer ces répertoires:

DerivedDataCache
Intermediate
Saved

Je ne vais pas ignorer les binaires, ne serait-ce que parce que je travaille avec un concepteur de niveaux qui n'a pas VS et aura donc besoin des fichiers DLL que je construis (je suppose que je peux me tromper).

Encore une fois, gardez à l'esprit que j'utilise Git pour Windows qui génère gitignore pour vous lorsque vous créez un projet, et c'est assez gros. Je commets à peu près uniquement ce qui suit (où "ReallyCoolGame" est le nom de votre projet):

.gitattributes
.gitignore
Binaries
Config
Content
Source
ReallyCoolGame.sln
ReallyCoolGame.uproject

Je viens juste de le commettre moi-même, et je ne l'ai pas encore testé avec mon level designer, donc caveat emptor.

En outre, je fais référence à un projet créé à l'aide du modèle C ++ à la première personne, qui est enregistré dans: E:\Documents\Unreal Projects\ReallyCoolGame( My Documents == E:\Documentssur ma machine) et non dans la structure du répertoire source d'Unreal Engine.

Edit: Je ne veux pas non plus inclure tout le contenu par défaut, donc je vais avoir un sous-répertoire dans Content juste pour les actifs du jeu eux-mêmes avec le même nom que le projet, et ignorer tous les autres sous-répertoires de Content. Ainsi, les lignes en haut de mon .gitignore ressemblent maintenant à:

DerivedDataCache
Intermediate
Saved
Content/*
!Content/ReallyCoolGame

Et le concepteur de niveaux mettra tous nos actifs à la Content/ReallyCoolGameplace.

MISE À JOUR:

Le répertoire intermédiaire contient en fait les fichiers de projet de Visual Studio, qui sont nécessaires pour générer le projet. Si le répertoire intermédiaire est ignoré, vous ne pourrez pas générer le projet car la solution Visual Studio ne le trouvera pas. Mais il existe deux solutions simples pour cela.

1) N'ignorez tout simplement pas le répertoire Intermédiaire. Bien sûr, dans ce cas, Visual Studio trouvera toujours tous les fichiers de projet dont il a besoin et pourra construire le projet.

2) Celui-ci est encore meilleur, en particulier pour le contrôle de version: ouvrez votre projet dans l'éditeur Unreal Engine 4 et allez dans "Fichier> Actualiser le projet Visual Studio". Cela générera pour vous un tout nouveau fichier de solution, ce qui signifie que vous n'aurez même pas besoin de le valider et que vous pourrez ajouter le * .sln dans le dossier du projet au fichier .gitignore.

Les fichiers * .suo et * .sdf peuvent également être ignorés en général, car Visual Studio n'en génère que de nouveaux lorsque vous ouvrez votre solution.

Youdaman
la source
J'ai résolu le problème avec le contenu par défaut différemment. Je n'ai pas ajouté le contenu de démarrage dans le projet généré. Construire les matériaux pour commencer est vraiment un jeu d'enfant et une fois que cela deviendra sérieux, j'aurai mes propres atouts. Cela supprime quelque chose comme 100 Mo de fichiers du projet.
rioki
14

Je ne connais pas les différences entre la version publique de UE4 et la mienne, mais voici le .gitignorefichier que j'utilise:

Engine/Binaries/
Engine/DerivedDataCache/
Engine/Intermediate/
Engine/Plugins/*/*/Binaries/
Engine/Plugins/*/*/Intermediate/
Engine/Programs/UnrealHeaderTool/
Engine/Programs/UnrealPak/
Engine/Saved/
Engine/Shaders/Binaries/
Engine/Source/*/*/*/obj/
Engine/Source/*/*/obj/
Engine/Source/*/obj/

UE4.opensdf
UE4.sdf
UE4.sln
UE4.suo
UE4.*.suo

GameName/Binaries/
GameName/DerivedDataCache/
GameName/Intermediate/
GameName/Saved/
sam hocevar
la source
1
Vous avez votre projet de jeu avec la source trois de l'UE? Si vous avez une construction personnalisée du moteur, cela peut avoir du sens, mais j'utilise le moteur d'origine. Fondamentalement, j'ai juste besoin de GameName / * et VS ignore.
rioki
Oui, le moteur a besoin de beaucoup de modifications et l'UE amont est régulièrement fusionné dans le référentiel.
sam hocevar
FWIW, lorsque je travaillais avec UE3, nous avions également notre projet de jeu dans l'arborescence source de l'UE, et mon impression était que c'était SOP. Je vais presque vous garantir que vous devrez également effectuer des mods de moteur, et il est beaucoup plus facile de garder une trace de tout si vous considérez UE + votre jeu comme une seule `` entité ''.
Steven Stadnicki
0

C'est ce que j'ai dans mon .gitignore

#Unreal Engine
StarterContent/
Saved/
Binaries/
Build/
Debug/
Intermediate/
DerivedDataCache/
UnrealHeaderTool/
UnrealPak/
obj/
*.VC.opendb
*.opensdf
*.sdf
*.suo
Shital Shah
la source