Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

15.05.2015, 17:08

Version Control

Hallo Leute!
Ich bin ein angehender Programmierer und arbeite grade an meinem ersten Spiel (Heikos Weltraumshooter aus seinem Buch, ich verbessere es gerade). Nun habe ich festgestellt, dass natürlich auch manchmal garnichts mehr geht. Ich hab jetzt Angst, dass ich zum Beispiel eine Woche irgendetwas versuche und ich dann feststelle, dass es irgendeinen Fehler gibt, so dass zum Beispiel Standbild wäre oder irgendein Bug, das Spiel aber kompiliert(d.h., dass es irgendein Logikfehler oder so ist). Wenn ich nun nicht in der Lage wäre den Fehler zu finden, bzw. den alten Status wiederherzustellen, wäre das Projekt komplett im Eimer.
Nun habe ich gesehen, dass meine Entwicklungsumgebung( Qt Creator auf Xubuntu ) ein sogenanntes Version Control Feature hat. Kann mir hier irgendwer erklären, wie das benutzt wird?
Gibt es vielleicht ein Feature oder eine leichte Möglichkeit um so etwas über die Konsole oder auch manuell zu machen?
Ich würde mich über hilfreiche Antworten sehr freuen,
Jakob aka. purzel69

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

15.05.2015, 17:17

Schau mal im Internet (notfalls auch bei Youtube) nach SVN und Git, da sollte so einiges erklärt werden. Ich gehe mal davon aus, dass QtCreator diese verwendet und nichts eigenes.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

15.05.2015, 19:47

Es gibt diverse Tools dafür, die bekanntesten sind vermutlich SVN, Git und Mercurial. Ich würde dir dringend zu einem der letzteren raten da sie "verteilt" sind, was letztendlich einfach sehr sehr viele Vorteile bietet.

Kleiner Überblick: https://de.wikipedia.org/wiki/Versionsve…sionsverwaltung

Ich selber benutze Git (mit tortoiseGit als Oberfläche), und bin damit immer zufriedener. Es bedarf einer gewissen Einarbeitungszeit, da man sich mit vielen neuen Konzepten vertraut machen muss, zahlt sich aber am Ende zigfach aus.
Lieber dumm fragen, als dumm bleiben!

4

15.05.2015, 20:43

+1 für Git oder Mercurial. Ich benutze BitBucket und SourceTree.
Mein Kaktus ist weder klein noch grün.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

15.05.2015, 20:45

Meine persönliche Empfehlung: Mercurial

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

6

16.05.2015, 12:42

Mercurial habe ich noch nicht benutzt. SVN würde ich persönlich nicht empfehlen (Zu langsam). Arbeite aktuell mit Git und bin damit vollkommen zufrieden :)
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

7

16.05.2015, 13:49

Vielleicht als kurze und grobe Erklärung zu zentral / dezentral:

Zentral: Es gibt einen einzigen Server auf dem die Versionsgeschichte gespeichert wird. Alle Clienten haben jeweils nur den aktuellen Stand.
Dezentral: Jeder speichert die komplette Versionsgeschichte, man kann sich mit beliebigen Clienten oder Servern synchronisieren.

Das hat dann folgende Nachteile:
- zentrale Systeme müssen dauernd mit dem Server reden (z.B. wenn man die Geschichte abfragt). Was immer leichte Verzögerungen hervorruft. Hat man einmal keine Serververbindung, kann man im Grunde überhaupt nichts mehr machen.
- dezentrale Systeme speichern immer alles. Insbesondere wenn man große Binärdateien hat, die sich oft ändern, wird jede lokale Kopie sehr sehr groß.

Wir hatten mal den Fall, dass der SVN-Server ausgefallen ist, und die halbe Abteilung 2 Wochen kaum arbeiten konnte. Hat mich mit meinem git nicht so gestört. Für Quellcode und ähnliches sind verteilte Systeme optimal, wenn man allerdings eine Versionsverwaltung für sein Spiel haben möchte wo sich in jeder Version die exe und ein Haufen Texturen / Modelle / Sounds ändern, will man vielleicht doch eher ein zentrales System benutzen.
Lieber dumm fragen, als dumm bleiben!

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

16.05.2015, 19:15

Bei denzentral sollte man vielleicht noch erwähnen, dass es halt keine kanonische Versiongeschichte gibt-jeder hat quasi seine eigene (soweit ich weiß-falls ich mich irre, korrigiert mich bitte). Es gibt auch Hybridlösungen (svn git bridge).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

9

16.05.2015, 19:37

Bei einer dezentralen Lösung pullst du die commits der anderen. Man hat die volle Historie, nur nicht zu jeder Zeit. Dafür ist es aber lokal ohne Server nutzbar.

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

10

16.05.2015, 19:38

Bei denzentral sollte man vielleicht noch erwähnen, dass es halt keine kanonische Versiongeschichte gibt-jeder hat quasi seine eigene (soweit ich weiß-falls ich mich irre, korrigiert mich bitte). Es gibt auch Hybridlösungen (svn git bridge).


Das hängt davon ab, wie du damit arbeitest. Wenn jeder mit Feature Branches arbeitet und regelmäßig den master branch in seinen Branch merged, gibt es egtl. keine Probleme.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Werbeanzeige