Frage von panakotta00, 50

Git automatisieren oder anderes system?

Hi Leute, ich hab ne Frage an euch. Wie kann ich an einem Unreal Engine 4 Projekt mit einer anderen Person gleichzeitig arbeiten? z.B. Git, aber das ganze soll synkron, also ohne weitere Knöpfe drücken zu müssen. Oder doch ein anderes System? Ich denk da an FTP aber Unreal Engine 4 glaub ich unterstützt das nicht.

-> Ich mein mit Unreal Engine 4 auch den Editor

Antwort
von JohanaRambowski, 35

Hallo,

Git ist für eine dezentrale Versionskontrolle mit mehreren Entwicklern
sehr gut geeignet und Git lässt sich bequem von der Kommandozeile
ausführen.

Hier mal der Workflow (so ähnlich wirds auch bei Epic Games und anderen professionel aufgestellten Programmierbuden gemacht, zB auch bei uns in der IT Abteilung der Stadtverwaltung Teterow)

Der Developer zieht sich per Git Pull die aktuelle Source aus dem Remote
Repository. Änderungen am lokalen code werden dann vom Developer wieder
ins Remote Git Repository gepushen -> falls alles OK ist (keine merge
conflicts) benachrichtigt Git auf dem Remote Server per Webhooks den
Integration Server (müsst ihr aufsetzen) -> der holt sich dann
automatisch die aktuelle Source aus dem Git Repo, führt die Tests aus
(Unit, Behavior, Functional,..) und erstellt, falls alles erfolgreich
war, daraus den neuen Build (compiled das Game (make) )

Der Prozess ist unabhängig wieviel Developer, also 1,2 oder 10.000, als
contributer agieren. Desweiteren lässt sich der Vorgang nach belieben
noch weiter ausschmücken, zB so dass der kompilierte Build automatisch in eine Staging
Umgebung deployed wird, damit zB der Chef/Bürgermeister schonmal das Werk probezocken kann....

LG Johana Rambowski

Expertenantwort
von TeeTier, Community-Experte für programmieren, 27

Git macht doch fast alles automatisch, und Konflikte lassen sich sehr leicht beseitigen. Im Notfall machst du halt Cherry-Picking. :)

Außerdem ist die Versionskontrolle doch sowieso immer ins Buildsystem integriert. Schreib dir doch einfach ein Makefile oder benutze eine IDE mit Git-Unterstützung.

Da gibt es viele Möglichkeiten. :)

PS: FTP halte ich für SEHR schlecht, da ihr dabei sehr schnell auf unlösbare Konflikte stoßen werden. FTP ist auch auch keine Versionskontrolle.

Antwort
von anion, 12

"synkron" mit verlaub, kannst du programmieren? weißt du, wovon du sprichst? ist nicht böse gemeint.

"z.B. Git, aber das ganze soll synkron, also ohne weitere Knöpfe drücken zu müssen."
so funktionieren versionskontrollsysteme nicht. wenn du ein ganz cleverer hax0r bist, kannst du dir ein skript erstellen, dass jede minute deine änderungen eincheckt und änderungen von anderen auf deinen client runterlädt. aber das macht man nicht, gerade weil man die knöpfe drücken möchte. man checkt dann ein, wenn man eine funktion oder ähnliches fertig programmiert hat, und wann das ist, erkennt kein programm automatisch.
kleiner tipp: selbst wenn man nicht parallel programmiert, dann programmiert man allein, aber wenn du schreibst, dass das synchron ablaufen soll, dann stiftet das mehr verwirrung. wenn man etwas drüber nachdenkt, versteht man, was du meinst, aber das wort ist in dem kontext eher unüblich. ist wieder nicht böse gemeint.
" Oder doch ein anderes System? Ich denk da an FTP aber Unreal Engine 4 glaub ich unterstützt das nicht." du kannst mit ftp alles up-/downloaden, auch alle deine quellcodedateien. das würde gehen, ist aber absolut unüblich. selbst wenn du ftp-client benutzt, bei denen du keine knöpfe drücken musst, dann hast du immernoch den nachteil, dass du keine verschiedenen branches hast wie bei git, keine versionskontrolle, nicht nachschauen kannst, wer welche änderungen gemacht hat, etc..
es gibt eine hand voll versionskontrollsystemonlineanbieterseiten, auf denen man seinen sourcecode hosten kann, z.b github oder bitbucket. git oder svn sind da schon sehr praktisch.

Antwort
von androhecker, 17

Ganz einfach, man arbeitet nicht zu zweit am selben Stück Code, das ergibt keinen Sinn.

Das Git System ist darauf ausgelegt, dass ein Grundprogramm besteht (die Master branch). Wenn ein Entwickler Funktionen hinzufügen will, dann erstellt er eine neue Branch (natürlich gehen auch mehrere gleichzeitig), ist diese Fertig, wird sie mit der Merge Funktion in die Master Branch integriert.
Am Grundprogramm werden in der Regel nur Fehler korrigiert, aber nichts Neues hinzugefügt.
Das ganze ist auch der Korrekte Weg um mit mehreren Devs zu arbeiten.

Du kannst du mit Foldersync arbeiten, aber wie schon gesagt, Git ist der richtige Weg.

Keine passende Antwort gefunden?

Fragen Sie die Community