File proyek Unreal Engine 4 mana yang dapat saya abaikan dalam kendali sumber?

30

Saya ingin menempatkan proyek Unreal Engine 4 di bawah kendali sumber dengan git. (Saya tahu editor memiliki dukungan Perforce dan Subversion, tapi saya tidak peduli dengan itu.)

Folder dan file apa yang saya sertakan dalam repositori dan mana yang bisa saya abaikan?

Cara saya melihatnya, berikut diperlukan: Config, Content, Source, *.sln,*.uproject

Hal-hal yang saya bisa mengabaikan: Binaries, DerivedDataCache, Intermediate, Saved, *.suo, *.sdf,*.opensdf

Apakah ini benar?

rioki
sumber
2
Jika ada .sln, biasanya ada file .vXX.suo (yang tidak terlihat, biasanya) yang mungkin ingin Anda abaikan karena berisi opsi khusus pengguna.
Josh
2
Github menyimpan daftar file abaikan untuk berbagai proyek. Belum ada entri untuk Unreal4. Jika Anda menemukan daftar yang sempurna, mungkin Anda harus mengirimkan permintaan tarik untuk menambahkannya di sana.
Seth Battin
Saya sudah mengabaikan file-file sementara VS, tetapi terima kasih telah menjelaskannya kepada semua orang. Saya mengubah pertanyaan untuk mencerminkan itu.
rioki
@rioki Apa kesan Anda tentang bekerja dengan git? Kemarin adalah waktu pertama saya bekerja dengan UE dan menghemat tingkat sederhana yang digunakan 500mb ruang hard disk saya. Terlalu banyak data untuk disinkronkan git.

Jawaban:

17

Saya menggunakan GitHub untuk Windows yang menghasilkan gitignore yang bagus dengan mengabaikan file yang paling asing seperti file log atau file khusus untuk VS yang tidak perlu dibagi.

Dari apa yang saya dapat kumpulkan dari halaman ini di dokumen Unreal , Anda mungkin dapat mengabaikan direktori ini:

DerivedDataCache
Intermediate
Saved

Saya tidak akan mengabaikan Binari, jika hanya karena saya bekerja dengan desainer level yang tidak memiliki VS dan karena itu akan memerlukan file DLL yang saya buat (saya berasumsi, saya bisa saja salah).

Sekali lagi ingatlah bahwa saya menggunakan Git untuk Windows yang menghasilkan gitignore untuk Anda ketika Anda membuat proyek, dan itu cukup besar. Saya cukup banyak hanya melakukan yang berikut (di mana "ReallyCoolGame" adalah nama proyek Anda):

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

Saya baru saja melakukan ini sendiri, dan saya belum mengujinya dengan desainer level saya, jadi emptor peringatan.

Juga, saya merujuk pada proyek yang dibuat menggunakan template orang pertama C ++, yang disimpan ke: E:\Documents\Unreal Projects\ReallyCoolGame( My Documents == E:\Documentspada mesin saya) dan tidak dalam struktur direktori sumber mesin Unreal.

Sunting: Saya juga tidak ingin menyertakan semua konten default, jadi saya akan memiliki subdirektori dalam Konten hanya untuk aset game itu sendiri dengan nama yang sama dengan proyek, dan mengabaikan semua subdirektori Konten lainnya. Jadi garis di bagian atas .gitignore saya sekarang terlihat seperti:

DerivedDataCache
Intermediate
Saved
Content/*
!Content/ReallyCoolGame

Dan desainer tingkat akan menempatkan semua aset kita Content/ReallyCoolGamesebagai gantinya.

MEMPERBARUI:

Direktori perantara sebenarnya berisi file proyek Visual Studio, yang diperlukan untuk membangun proyek. Jika direktori perantara diabaikan, Anda tidak akan dapat membangun proyek karena solusi Visual Studio tidak akan menemukannya. Tetapi ada dua solusi mudah untuk ini.

1) Hanya saja jangan abaikan direktori perantara. Tentu saja dalam hal ini Visual Studio masih akan menemukan semua file proyek yang dibutuhkan dan dapat membangun proyek.

2) Yang ini bahkan lebih baik, terutama untuk kontrol versi: Buka proyek Anda di editor Unreal Engine 4 dan buka "File> Refresh Visual Studio Project". Ini akan menghasilkan semua file solusi baru untuk Anda, yang berarti Anda bahkan tidak perlu mengkomitnya dan dapat menambahkan * .sln di folder proyek ke file .gitignore.

Juga file * .suo dan * .sdf dapat diabaikan secara umum, karena Visual Studio hanya menghasilkan yang baru ketika Anda membuka solusi Anda.

Youdaman
sumber
Saya memecahkan masalah dengan konten default secara berbeda. Saya tidak menambahkan konten pemula ke proyek yang dihasilkan. Membangun bahan untuk memulai benar-benar sepotong kue dan begitu mulai serius saya akan memiliki aset sendiri. Ini menghapus sekitar 100 MB file dari proyek.
rioki
14

Saya tidak tahu perbedaan antara versi publik UE4 dan milik saya, tetapi di sini adalah .gitignorefile yang saya gunakan:

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
sumber
1
Anda memiliki proyek game Anda dengan sumber tiga UE? Jika Anda memiliki mesin kustom, ini mungkin masuk akal, tetapi saya menggunakan mesin stok. Pada dasarnya saya hanya perlu GameName / * dan VS mengabaikan.
rioki
Ya, mesin membutuhkan banyak modifikasi, dan UE hulu secara teratur digabungkan ke dalam repositori.
sam hocevar
FWIW, ketika saya bekerja dengan UE3 kami juga memiliki proyek game kami di dalam inti pohon sumber UE, dan kesan saya adalah ini SOP. Saya hampir akan menjamin bahwa Anda perlu melakukan mod mesin juga, dan akan lebih mudah untuk melacak semuanya jika Anda menganggap UE + Game Anda sebagai 'entitas' tunggal.
Steven Stadnicki
0

Inilah yang saya miliki di .gitignore saya

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