Quais arquivos de projeto do Unreal Engine 4 posso ignorar no controle de origem?

30

Quero colocar um projeto do Unreal Engine 4 sob controle de origem com o git. (Eu sei que o editor tem suporte ao Perforce e Subversion, mas não me importo com isso.)

Quais pastas e arquivos eu incluo no repositório e quais posso ignorar?

A forma como eu vejo, é necessário o seguinte: Config, Content, Source, *.sln,*.uproject

Coisas que eu posso ignorar: Binaries, DerivedDataCache, Intermediate, Saved, *.suo, *.sdf,*.opensdf

Isso está correto?

rioki
fonte
2
Se houver um .sln, geralmente há um arquivo .vXX.suo (que é invisível, geralmente) que você pode querer ignorar, pois contém opções específicas do usuário.
21414 Josh
2
O Github mantém uma lista de arquivos ignorados para vários projetos. Não há entrada para Unreal4 ainda. Se você encontrar a lista perfeita, talvez envie uma solicitação pull para adicioná-la lá.
Seth Battin 21/03
Eu já ignorei os arquivos temporários do VS, mas obrigado por torná-lo óbvio para todos. Eu alterei a pergunta para refletir isso.
Rioki
@rioki Qual é a sua impressão sobre trabalhar com o git? Ontem foi a primeira vez que trabalhei com a UE e, ao salvar o nível simples, usei 500mb de espaço em disco. São dados demais para o git sincronizar.

Respostas:

17

Estou usando o GitHub para Windows, que gera um bom gitignore, ignorando a maioria dos arquivos estranhos, como arquivos de log ou arquivos específicos do VS, que não precisam ser compartilhados.

Pelo que pude reunir nesta página nos documentos da Unreal , você provavelmente pode ignorar esses diretórios:

DerivedDataCache
Intermediate
Saved

Não vou ignorar os binários, apenas porque estou trabalhando com um designer de níveis que não possui VS e, portanto, precisará dos arquivos DLL que eu construo (presumo que possa estar errado).

Novamente, lembre-se de que estou usando o Git for Windows que gera gitignore para você quando você cria um projeto, e é bem grande. Estou praticamente comprometendo o seguinte (onde "ReallyCoolGame" é o nome do seu projeto):

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

Acabei de cometer isso sozinho e ainda não o testei com meu designer de níveis, portanto, ressalte o emptor.

Além disso, estou me referindo a um projeto criado usando o modelo C ++ em primeira pessoa, que é salvo em: E:\Documents\Unreal Projects\ReallyCoolGame( My Documents == E:\Documentsna minha máquina) e não na estrutura de diretórios de origem do Unreal Engine.

Editar: também não quero incluir todo o conteúdo padrão, por isso vou ter um subdiretório no Content apenas para os ativos do jogo com o mesmo nome do projeto e ignorar todos os outros subdiretórios do Content. Portanto, as linhas na parte superior do meu .gitignore agora se parecem com:

DerivedDataCache
Intermediate
Saved
Content/*
!Content/ReallyCoolGame

E o designer de nível colocará todos os nossos ativos Content/ReallyCoolGame.

ATUALIZAR:

O diretório intermediário, na verdade, contém os arquivos de projeto do Visual Studio, necessários para compilar o projeto. Se o diretório intermediário for ignorado, você não poderá criar o projeto porque a solução do Visual Studio não o encontrará. Mas existem duas soluções fáceis para isso.

1) Apenas não ignore o diretório intermediário. Obviamente, nesse caso, o Visual Studio ainda encontrará todos os arquivos de projeto necessários e poderá compilar o projeto.

2) Este é ainda melhor, especialmente para controle de versão: abra seu projeto no editor do Unreal Engine 4 e vá em "Arquivo> Atualizar projeto do Visual Studio". Isso irá gerar um arquivo de solução totalmente novo para você, o que significa que você nem precisará confirmá-lo e poderá adicionar o * .sln na pasta do projeto ao arquivo .gitignore.

Também os arquivos * .suo e * .sdf podem ser ignorados em geral, pois o Visual Studio gera apenas novos quando você abre a solução.

Youdaman
fonte
Resolvi o problema com o conteúdo padrão de maneira diferente. Não adicionei o conteúdo inicial ao projeto gerado. Construir os materiais para começar é realmente um pedaço de bolo e, quando ficar sério, terei meus próprios ativos. Isso remove algo como 100 MB de arquivos do projeto.
Rioki
14

Não sei as diferenças entre a versão pública do UE4 e a minha, mas aqui está o .gitignorearquivo que tenho usado:

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
fonte
1
Você tem seu projeto de jogo na fonte três do UE? Se você tem uma construção personalizada do mecanismo, isso pode fazer sentido, mas estou usando o mecanismo de estoque. Basicamente, eu só preciso do GameName / * e o VS ignora.
Rioki
Sim, o mecanismo precisa de muitas modificações e o UE upstream é regularmente mesclado no repositório.
23614 Sam Sami Hocevar
FWIW, quando eu estava trabalhando com a UE3, também tínhamos nosso projeto de jogo na árvore principal de fontes da UE, e minha impressão foi de que isso é SOP. Eu quase garanto que você precisará fazer mods de mecanismo também, e é muito mais fácil acompanhar tudo se você considerar o UE + Your Game como uma única 'entidade'.
Steven Stadnicki
0

É isso que eu tenho no meu .gitignore

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