Które pliki projektu Unreal Engine 4 mogę zignorować w kontroli źródła?

30

Chcę poddać projekt Unreal Engine 4 kontroli źródła za pomocą git. (Wiem, że redaktor ma obsługę Perforce i Subversion, ale nie dbam o to.)

Który folder i pliki znajdę w repozytorium, a które mogę zignorować?

Tak jak ja to widzę, co następuje potrzebne: Config, Content, Source, *.sln,*.uproject

Rzeczy, które można zignorować: Binaries, DerivedDataCache, Intermediate, Saved, *.suo, *.sdf,*.opensdf

Czy to jest poprawne?

Rioki
źródło
2
Jeśli jest plik .sln, zwykle znajduje się plik .vXX.suo (zwykle niewidoczny), który możesz zignorować, ponieważ zawiera opcje specyficzne dla użytkownika.
Josh
2
Github prowadzi listę plików ignorowanych dla różnych projektów. Nie ma jeszcze wpisu dla Unreal4. Jeśli znajdziesz idealną listę, być może powinieneś przesłać żądanie ściągnięcia, aby ją tam dodać.
Seth Battin
Zignorowałem już pliki tymczasowe VS, ale dziękuję, że daliście to wszystkim do zrozumienia. Zmieniłem pytanie, aby to odzwierciedlić.
rioki
@rioki Jakie masz wrażenia na temat pracy z git? Wczoraj był pierwszy raz, kiedy pracowałem z UE i oszczędzając prosty poziom zużyłem 500 MB mojego miejsca na dysku twardym. To za dużo danych, aby git mógł zsynchronizować.

Odpowiedzi:

17

Korzystam z GitHub dla Windows, który generuje niezły gitignore ignorujący większość obcych plików, takich jak pliki dziennika lub pliki specyficzne dla VS, które nie muszą być udostępniane.

Z tego, co mogę zebrać z tej strony w dokumentach Unreal , prawdopodobnie możesz zignorować te katalogi:

DerivedDataCache
Intermediate
Saved

Nie zamierzam ignorować plików binarnych, choćby dlatego, że współpracuję z projektantem poziomów, który nie ma VS i dlatego będą potrzebować plików DLL, które buduję (zakładam, że mogę się mylić).

Ponownie pamiętaj, że używam Git dla Windows, który generuje dla ciebie gitignore podczas tworzenia projektu, i jest dość duży. Prawie popełniam tylko następujące (gdzie „ReallyCoolGame” to nazwa twojego projektu):

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

Dopiero co popełniłem to sam, i jeszcze nie przetestowałem tego z moim projektantem poziomów, więc zastrzegam sobie emptora.

Mam również na myśli projekt utworzony przy użyciu szablonu C ++ z pierwszej osoby, który jest zapisywany w: E:\Documents\Unreal Projects\ReallyCoolGame( My Documents == E:\Documentsna moim komputerze), a nie w strukturze katalogu źródłowego Unreal Engine.

Edycja: Nie chcę również uwzględniać całej zawartości domyślnej, więc będę mieć podkatalog w treści tylko dla zasobów gry o tej samej nazwie co projekt i zignoruję wszystkie inne podkatalogi treści. Więc linie na górze mojego .gitignore wyglądają teraz tak:

DerivedDataCache
Intermediate
Saved
Content/*
!Content/ReallyCoolGame

W Content/ReallyCoolGamezamian projektant poziomów umieści wszystkie nasze zasoby .

AKTUALIZACJA:

Katalog pośredni zawiera pliki projektu Visual Studio, które są potrzebne do zbudowania projektu. Jeśli katalog pośredni zostanie zignorowany, nie będzie można zbudować projektu, ponieważ rozwiązanie Visual Studio go nie znajdzie. Istnieją jednak dwa łatwe obejścia tego problemu.

1) Po prostu nie ignoruj ​​katalogu pośredniego. Oczywiście w takim przypadku Visual Studio nadal znajdzie wszystkie potrzebne pliki projektu i będzie w stanie zbudować projekt.

2) Ten jest jeszcze lepszy, szczególnie do kontroli wersji: Otwórz swój projekt w edytorze Unreal Engine 4 i przejdź do „Plik> Odśwież projekt Visual Studio”. Spowoduje to wygenerowanie całkowicie nowego pliku rozwiązania, co oznacza, że ​​nawet nie będziesz musiał go zatwierdzać i możesz dodać * .sln z folderu projektu do pliku .gitignore.

Pliki * .suo i * .sdf można ogólnie zignorować, ponieważ program Visual Studio po prostu generuje nowe po otwarciu rozwiązania.

Youdaman
źródło
Problem z domyślną treścią rozwiązałem inaczej. Nie dodałem treści startowej do wygenerowanego projektu. Gromadzenie materiałów na początek to naprawdę bułka z masłem, a kiedy stanie się poważna, będę miał własne aktywa. To usuwa około 100 MB plików z projektu.
rioki
14

Nie znam różnic między publiczną wersją UE4 a moją, ale oto .gitignoreplik, którego używałem:

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
źródło
1
Masz swój projekt gry ze źródłem trzecim UE? Jeśli masz niestandardową wersję silnika, może to mieć sens, ale używam silnika podstawowego. Zasadniczo potrzebuję tylko GameName / *, a VS ignoruje.
rioki
Tak, silnik wymaga wielu modyfikacji, a wcześniejszy UE jest regularnie łączony z repozytorium.
sam hocevar
FWIW, kiedy pracowałem z UE3, mieliśmy również nasz projekt gry w podstawowym drzewie źródeł UE, i mam wrażenie, że jest to SOP. Prawie gwarantuję, że będziesz musiał również modyfikować silniki, a dużo łatwiej jest śledzić wszystko, jeśli weźmiesz pod uwagę UE + Twoja gra jako jedną „jednostkę”.
Steven Stadnicki
0

To właśnie mam w moim .gitignore

#Unreal Engine
StarterContent/
Saved/
Binaries/
Build/
Debug/
Intermediate/
DerivedDataCache/
UnrealHeaderTool/
UnrealPak/
obj/
*.VC.opendb
*.opensdf
*.sdf
*.suo
Shital Shah
źródło