Quali file di progetto di Unreal Engine 4 posso ignorare nel controllo del codice sorgente?


30

Voglio mettere un progetto Unreal Engine 4 sotto il controllo del codice sorgente con Git. (So ​​che l'editor ha il supporto Perforce e Subversion, ma non mi interessa per quelli.)

Quali cartelle e file devo includere nel repository e quali posso ignorare?

Il mio modo di vedere, è necessario il seguente: Config, Content, Source, *.sln,*.uproject

Le cose che posso ignorare: Binaries, DerivedDataCache, Intermediate, Saved, *.suo, *.sdf,*.opensdf

È corretto?


2
Se c'è un .sln, di solito c'è un file .vXX.suo (che di solito è invisibile) che potresti voler ignorare poiché contiene opzioni specifiche dell'utente.
Josh

2
Github mantiene un elenco di file ignorati per vari progetti. Non ci sono ancora voci per Unreal4. Se trovi l'elenco perfetto, forse dovresti inviare una richiesta pull per aggiungerla lì.
Seth Battin,

Ho già ignorato i file temporanei di VS, ma grazie per averlo reso evidente a tutti. Ho modificato la domanda per riflettere ciò.
rioki,

@rioki Qual è la tua impressione di lavorare con git? Ieri è stato il primo momento in cui ho lavorato con l'UE e il salvataggio del livello semplice ha utilizzato 500 MB di spazio sul mio disco rigido. Sono troppi dati da sincronizzare con git.

Risposte:


17

Sto usando GitHub per Windows che genera un buon gitignore ignorando la maggior parte dei file estranei come file di registro o file specifici di VS che non devono essere condivisi.

Da quello che posso raccogliere da questa pagina nei documenti di Unreal , probabilmente puoi ignorare queste directory:

DerivedDataCache
Intermediate
Saved

Non ignorerò i binari, se non altro perché sto lavorando con un designer di livelli che non ha VS e quindi avrà bisogno dei file DLL che creo (presumo, potrei sbagliarmi).

Ancora una volta tieni presente che sto usando Git per Windows che genera gitignore per te quando crei un progetto, ed è piuttosto grande. Praticamente sto solo impegnando quanto segue (dove "ReallyCoolGame" è il nome del tuo progetto):

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

L'ho appena commesso da solo, e devo ancora provarlo con il mio designer di livello, quindi avvertimento emptor.

Inoltre, mi riferisco a un progetto creato utilizzando il modello C ++ in prima persona, che viene salvato in: E:\Documents\Unreal Projects\ReallyCoolGame( My Documents == E:\Documentssulla mia macchina) e non nella struttura della directory di origine di Unreal Engine.

Modifica: Inoltre, non voglio includere tutto il contenuto predefinito, quindi avrò una sottodirectory all'interno del contenuto solo per gli asset di gioco stessi con lo stesso nome del progetto e ignorerò tutte le altre sottodirectory del contenuto. Quindi le linee nella parte superiore del mio .gitignore ora sembrano:

DerivedDataCache
Intermediate
Saved
Content/*
!Content/ReallyCoolGame

E il designer di livelli inserirà invece tutte le nostre risorse Content/ReallyCoolGame.

AGGIORNARE:

La directory intermedia contiene effettivamente i file di progetto di Visual Studio, necessari per creare il progetto. Se la directory intermedia viene ignorata, non sarà possibile creare il progetto perché la soluzione di Visual Studio non lo troverà. Ma ci sono due semplici soluzioni per questo.

1) Basta non ignorare la directory intermedia. Ovviamente in quel caso Visual Studio troverà comunque tutti i file di progetto necessari e sarà in grado di costruire il progetto.

2) Questo è ancora meglio, soprattutto per il controllo delle versioni: apri il tuo progetto nell'editor Unreal Engine 4 e vai su "File> Aggiorna progetto Visual Studio". Questo genererà per te un file di soluzione completamente nuovo, il che significa che non dovrai nemmeno impegnarlo e puoi aggiungere * .sln nella cartella del progetto al file .gitignore.

Inoltre, i file * .suo e * .sdf possono essere ignorati in generale, poiché Visual Studio ne genera solo di nuovi quando si apre la soluzione.


Ho risolto il problema con il contenuto predefinito in modo diverso. Non ho aggiunto il contenuto iniziale nel progetto generato. Costruire i materiali per iniziare è davvero un gioco da ragazzi e una volta che diventerà serio avrò le mie risorse. Questo rimuove qualcosa come 100 MB di file dal progetto.
rioki,

14

Non conosco le differenze tra la versione pubblica di UE4 e la mia, ma ecco il .gitignorefile che ho usato:

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/

1
Hai il tuo progetto di gioco all'interno della fonte tre dell'UE? Se hai una build personalizzata del motore questo può avere senso, ma sto usando il motore di serie. Fondamentalmente ho solo bisogno del GameName / * e VS ignora.
rioki,

Sì, il motore richiede molte modifiche e l'UE a monte viene regolarmente unita al repository.
Sam Hocevar,

FWIW, quando stavo lavorando con UE3, avevamo anche il nostro progetto di gioco all'interno dell'albero dei sorgenti della UE, e la mia impressione era che questo fosse SOP. Ti garantirò quasi che dovrai fare anche le mod del motore, ed è molto più facile tenere traccia di tutto se consideri UE + Your Game come una singola "entità".
Steven Stadnicki,

0

Questo è ciò che ho nel mio .gitignore

#Unreal Engine
StarterContent/
Saved/
Binaries/
Build/
Debug/
Intermediate/
DerivedDataCache/
UnrealHeaderTool/
UnrealPak/
obj/
*.VC.opendb
*.opensdf
*.sdf
*.suo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.