¿Qué archivos de proyecto de Unreal Engine 4 puedo ignorar en el control de código fuente?


30

Quiero poner un proyecto de Unreal Engine 4 bajo control de fuente con git. (Sé que el editor tiene soporte para Perforce y Subversion, pero no me importan).

¿Qué carpeta y archivos incluyo en el repositorio y cuáles puedo ignorar?

La forma en que lo veo, se necesita lo siguiente: Config, Content, Source, *.sln,*.uproject

Cosas que puedo pasar por alto: Binaries, DerivedDataCache, Intermediate, Saved, *.suo, *.sdf,*.opensdf

¿Es esto correcto?


2
Si hay un .sln, generalmente hay un archivo .vXX.suo (que es invisible, por lo general) que es posible que desee ignorar ya que contiene opciones específicas del usuario.
Josh

2
Github mantiene una lista de archivos ignorados para varios proyectos. Aún no hay entradas para Unreal4. Si encuentra la lista perfecta, tal vez debería enviar una solicitud de extracción para agregarla allí.
Seth Battin

Ya ignoré los archivos temporales de VS, pero gracias por hacerlo obvio para todos. Modifiqué la pregunta para reflejar eso.
Rioki

@rioki ¿Cuál es tu impresión sobre trabajar con git? Ayer fue el primer momento en que trabajé con UE y al guardar el nivel simple utilicé 500mb de espacio en mi disco duro. Son demasiados datos para que git se sincronice.

Respuestas:


17

Estoy usando GitHub para Windows que genera un buen gitignore ignorando la mayoría de los archivos extraños como archivos de registro o archivos específicos de VS que no necesitan ser compartidos.

Por lo que puedo deducir de esta página en los documentos de Unreal , probablemente puede ignorar estos directorios:

DerivedDataCache
Intermediate
Saved

No voy a ignorar los binarios, aunque solo sea porque estoy trabajando con un diseñador de niveles que no tiene VS y, por lo tanto, necesitaré los archivos DLL que construyo (supongo que podría estar equivocado).

Nuevamente, tenga en cuenta que estoy usando Git para Windows que genera gitignore para usted cuando crea un proyecto, y es bastante grande. Prácticamente solo estoy cometiendo lo siguiente (donde "ReallyCoolGame" es el nombre de su proyecto):

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

Acabo de cometer esto yo mismo, y todavía tengo que probarlo con mi diseñador de niveles, así que tenga cuidado.

Además, me refiero a un proyecto creado con la plantilla de C ++ en primera persona, que se guarda en: E:\Documents\Unreal Projects\ReallyCoolGame( My Documents == E:\Documentsen mi máquina) y no dentro de la estructura de directorios de origen de Unreal Engine.

Editar: tampoco quiero incluir todo el contenido predeterminado, por lo que voy a tener un subdirectorio dentro de Contenido solo para los activos del juego con el mismo nombre que el proyecto e ignorar todos los demás subdirectorios de Contenido. Entonces las líneas en la parte superior de mi .gitignore ahora se ven así:

DerivedDataCache
Intermediate
Saved
Content/*
!Content/ReallyCoolGame

Y el diseñador de niveles pondrá todos nuestros activos en su Content/ReallyCoolGamelugar.

ACTUALIZAR:

El directorio intermedio en realidad contiene los archivos de proyecto de Visual Studio, que son necesarios para construir el proyecto. Si se ignora el directorio intermedio, no podrá compilar el proyecto porque la solución de Visual Studio no lo encontrará. Pero hay dos soluciones simples para esto.

1) Simplemente no ignore el directorio intermedio. Por supuesto, en ese caso, Visual Studio todavía encontrará todos los archivos de proyecto que necesita y podrá construir el proyecto.

2) Este es aún mejor, especialmente para el control de versiones: abra su proyecto en el editor de Unreal Engine 4 y vaya a "Archivo> Actualizar proyecto de Visual Studio". Esto generará un archivo de solución completamente nuevo para usted, lo que significa que ni siquiera necesitará confirmarlo y puede agregar el * .sln en la carpeta del proyecto al archivo .gitignore.

Además, los archivos * .suo y * .sdf pueden ignorarse en general, ya que Visual Studio solo genera nuevos cuando abre su solución.


Resolví el problema con el contenido predeterminado de manera diferente. No agregué el contenido inicial en el proyecto generado. Construir los materiales para comenzar es realmente pan comido y una vez que se vuelva serio tendré mis propios activos. Esto elimina algo así como 100 MB de archivos del proyecto.
Rioki

14

No sé las diferencias entre la versión pública de UE4 y la mía, pero aquí está el .gitignorearchivo que he estado usando:

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
¿Tienes tu proyecto de juego dentro de la fuente tres de la UE? Si tiene una versión personalizada del motor, esto puede tener sentido, pero estoy usando el motor de serie. Básicamente solo necesito el GameName / * y VS ignora.
Rioki

Sí, el motor necesita muchas modificaciones, y UE ascendente se fusiona regularmente en el repositorio.
sam hocevar

FWIW, cuando estaba trabajando con UE3 también teníamos nuestro proyecto de juego dentro del árbol fuente de UE principal, y mi impresión fue que esto es SOP. Casi te garantizo que también necesitarás hacer modificaciones en el motor, y es mucho más fácil hacer un seguimiento de todo si consideras UE + Your Game como una sola 'entidad'.
Steven Stadnicki

0

Esto es lo que tengo en mi .gitignore

#Unreal Engine
StarterContent/
Saved/
Binaries/
Build/
Debug/
Intermediate/
DerivedDataCache/
UnrealHeaderTool/
UnrealPak/
obj/
*.VC.opendb
*.opensdf
*.sdf
*.suo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.