Wednesday, September 3, 2014

Codefest Blog-Eintrag: VS Online mit Unity zur Source Code Verwaltung

Als Bindeglied zu meinem letzten und in Vorbereitung auf meinen nächsten Blog-Eintrag möchte ich euch gerne zeigen, wie Ihr Unity mit Visual Studio Online verwenden könnt. Um das jetzt gleich mit mir gemeinsam auszuprobieren benötigt ihr diese Mal folgendes:
· Visual Studio (ich verwende 2013 Update 3)
· Einen VS Online Zugang – das habe ich ausführlich hier beschrieben.
· Unity - solltet ihr Unity noch nicht installiert haben, so bekommt ihr unter http://unity3d.com/unity/download eine Testversion, die für diesen und den nächsten Blog-Eintrag reicht.
Folgende Schritte müssen wir durchführen um den Source Code für ein Unity Projekt in VS Online zu verwalten:
· Ein Unity Projekt erstellen.
· Metadaten für die Source-Code Verwaltung in Unity aktivieren.
· Anlegen des Projektes in VS Online.
· Klonen des Projektes auf dem lokalen Rechner.
· Eine .gitignore Datei erstellen und anpassen.
· Verschieben der Unity Dateien.
· Das Projekt einchecken.
Legen wir los, damit wir uns das nächste Mal in die „Tiefen der Spieleentwicklung“ begeben können.

Ein Unity Projekt erstellen

Um Unity Source-Code zu verwalten benötigen wir ein Unity Projekt. Soweit so gut, also legen wir eines an, dazu müssen wir:
· Unity öffnen
· Im Project Dialog von Unity ein neues Projekt erstellen mit folgenden Einstellungen
o Project Location: C:\GameDev\PhoneCatcherUnity
o Setup Defaults for: 2D
imageimage
Die Einstellung für 2D ist von Vorteil, da es sich Ende dieser Woche um ein 2D Spiel handeln wird. Wir sind für’s Erste in Unity selbst schon fast fertig, Unity ist noch nicht ganz bereit für die externe Source-Code Verwaltung.

Metadaten für die Source-Code Verwaltung in Unity aktivieren

Das Projekt sollten wir also nun erstellt haben, als nächstes müssen wir noch die Metadaten für die Source-Code-Verwaltung in Unity aktivieren, was auch in der Unity Dokumentation zu finden ist:http://docs.unity3d.com/Manual/ExternalVersionControlSystemSupport.html
Ihr müsst aber nicht unbedingt in der Dokumentation alles nachlesen, das klappt durch Setzen der Eigenschaft Mode mit dem Wert “Visible Meta files“ in Edit->Project Settings->Editor und schon sind wir fertig.
image
Gut, Unity ist bereit, das Projekt existiert, wir können Unity schließen und uns VS Online und Visual Studio 2013 widmen.

Anlegen des Projektes in VS Online

Wie erwähnt solltet Ihr bereits einen VS Online Zugang angelegt haben (falls nicht, bitte lest euch meinen letzten Blog Eintrag durch). Meldet euch bitte an, die URL ist https://.visualstudio.com, bei mir also z. B. https://hamboeck.visualstudio.com.
Im VS Online Portal legt dann bitte ein neues Projekt an, ich würde den Namen PhoneCatcher vorschlagen. Dieses Spiel werden wir nächste Woche gemeinsam programmieren, dann können wir gleich das Projekt verwenden. Als Version Control stellen wir aber dieses Mal Git und nicht Team Foundation Version Control ein.
imageimage
Nach dem Anlegen und Navigieren zum Projekt in VS Online klickt bitte den image link, damit Visual Studio 2013 auf eurem lokalen Rechner startet und der TeamExplorer angezeigt wird.
image
Jetzt sollte Visual Studio geöffnet sein, jetzt müssen wir den lokalen Pfad einstellen und das Projekt klonen.

Klonen des Projektes auf den lokalen Rechner

Der dezente Hinweis, der im TeamExplorer inerhalb des soeben (lokal) geöffneten Visual Studios zu sehen ist, erklärt uns, was als nächstes zu tun ist. Wir sollen klonen, nun, dann machen wir das auch!
Wir klonen das Repository auf unseren lokalen Rechner, indem man zuerst auf den Link klickt, was dazu führt, dass wir die Einstellungen für das Klonen unseres VS Online Projektes zu sehen bekommen.
image
Ich speichere meine Projekte für die Spieleentwicklung normalerweise unter C:\GameDev. Somit bietet sich für diesen Fall das Verzeichnis C:\GameDev\PhoneCatcher an. ACHTUNG: das lokale Verzeichnis darf noch nicht vorhanden sein, also ein eventuell bereits vorhandenes Unity Projekt vor diesem Schritt unbedingt umbenennen (z. B. C:\GameDev\PhoneCatcher1) und nach dem Klonen den Inhalt wieder zurück kopieren. Da das bei uns eigentlich nicht der Fall sein dürfte (unser Unity Projekt wurde in C:\GameDev\PhoneCatcherUnity erstellt), steht dem Drücken des Clone Buttons nichts mehr im Wege., um das Klonen zu starten.
image
Damit befindet sich auf der lokalen Festplatte das Verzeichnis C:\GameDev\PhoneCatcher.

Eine .gitignore Datei erstellen und anpassen

Unity erstellt einige Dateien, die nicht unbedingt versioniert werden müssen. Um das Versionieren dieser Dateien zu verhindern verwendet Git die Datei .gitignore. Diese Datei wollen wir nun anlegen. Der TeamExplorer erledigt diese Arbeit für uns, indem wir zuerst zu den Settings wechseln und danach zu den Git Settings.
imageimage
Der TeamExplorer zeigt uns an, dass es noch keine .gitignore Datei gibt. Stimmt, das werden wir gleich einmal ändern, indem man den Add link anwählt. Und schon existiert die .gitignore Datei in unserem Verzeichnis. Öffnen wir diese gleich mit dem Edit link, damit wir unsere Ausnahmen eintragen können.
imageimage
In der Unity-Dokumentation finden wir einen Hinweis, welche Verzeichnisse und Dateien wir ausnehmen sollten:
„When checking the project into a version control system, you should add the Assets and theProjectSettings directories to the system. The Library directory should be completely ignored - when using .meta files, it’s only a local cache of imported assets.”
Ich habe folgende Einträge am Anfang der Datei .gitignore hinzugefügt, um die temporären Datein, die Unity erstellt auszuschließen:
#unity .gitignore file
Temp/*
Library/*
Build/*
Das sieht am Ende so aus (die vorhandenen Einträge belässt ihr danach, so wie sie sind):
image
Das bedeutet, dass der Inhalt der drei Verzeichnisse (Temp, Library und Build) NICHT mitverwaltet werden soll. Speichert die Datei und wir sind fast bereit das Unity-Projekt einzuchecken.

Verschieben der Unity Dateien

Wir haben das VS Online in das Verzeichnis C:\GameDev\PhoneCatcher geklont, das Unity Projekt allerdings im Verzeichnis C:\GameDev\PhoneCatcherUnity erstellt. Ich habe mich dafür entschieden, da sowohl Unity ein nicht vorhandenes Verzeichnis benötigt, als auch der TeamExplorer nur in ein leeres Verzeichnis klont. Wir müssen also die Dateien und Verzeichnisse aus C:\GameDev\PhoneCatcherUnity in das Verzeichnis C:\GameDev\PhoneCatcher verschieben. Das Resultat kann im File Explorer überprüft werden:
image
Ich habe im File Explorer die File Extensions eingeschaltet, darum sieht man im Screenshot bei mir die .gitignore Datei, das kann bei euch anders aussehen, wenn ihr diese Einstellung nicht aktiviert habt im File Explorer.

Das Projekt einchecken

Nun sind wir endlich soweit, das Projekt kann eingecheckt werden. Im Visual Studio, im TeamExplorer wählt ihr Changes an, die Ansicht wechselt auf den Changes Reiter.
image
Vergebt bitte gleich ein Kommentar (Initial Check-In ist in diesem Fall sehr passend), damit man später noch weiß, was sich geändert hat, danach solltet ihr alle Dateien hinzufügen, das geschieht mit dem „Add All“ link. Danach seid ihr bereit für den Commit-Button, der alle Dateien zum Synchronisieren in VS Online markiert. In meinen Screenshots weiter unten seht ihr bereits die Dateien für das fertige Spiel, so wird das Ende dieser Woche aussehen.
imageimage
Jetzt fehlt nur noch die Änderungen zu VS Online zu synchronisieren, das kann gleich im TeamExplorer durchgeführt werden, indem ihr den Sync-Link anwählt. Die Änderungen werden zu VS Online übertragen, das dauert ein paar Sekunden.
imageimageimage
Und wenn alles geklappt hat – wovon ich fest ausgehe - ist der Source Code im VS Online-Portal ersichtlich und es kann nichts mehr schief gehen mit dem Source Code für das €1.000.000,—Game!
image

Zusammenfassung 

Unity mit VS Online und Visual Studio 2013 sind ein starkes Team, das werden wir noch im nächsten Blog-Eintrag von mir sehen. Wir sind schon sehr gut vorbereitet, der Source Code wird sicher in VS Online verwaltet und kann nicht mehr verloren gehen!

No comments:

CSharpCodeFormatter