Incom ist die Kommunikations-Plattform der Fachhochschule Potsdam

In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre

Incom ist die Kommunikations-Plattform der Fachhochschule Potsdam mehr erfahren

TowerHead

In diesem Kurs beschäftigten wir uns mit dem Aufbau und der Programmierung von Spielen mit Hilfe von Unity. Unser Ziel war es ein Towerdefense Spiel zu programmieren, in dessen Level man sich mit einem Charakter frei bewegen kann.

______________________________________________________________

Konzept

Nachdem wir uns als Team zusammengefunden hatten, stellten wir fest, dass jeder von uns gerne Tower Defense Spiele gespielt hat, oder sogar immer noch spielt.
Das brachte uns auf die Idee ein klassisches Tower Defense mit steuerbarem Charakter aus der 3rd Person Perspektive zu programmieren. Dadurch sollte der altbekannte Klassiker einen ganz neues Erscheinungsbild und Spielgefühl erhalten.
Man sollte in unserem Spiel Türme mit unterschiedlichen Fähigkeiten auf der Karte verteilen können, die dann die angreifenden Luft- und Bodentruppen angreifen, und ihnen damit Schaden zufügen und/oder sie verlangsamen sollten. Die angreifenden Truppen sollten sich nach unserer Vorstellung frei von Hindernissen von Punkt A nach Punkt B bewegen können und dabei im Weg stehenden Hindernissen, wie zum Beispiel Türmen oder Terrain ausweichen. Es sollte außerdem mehrere Wellen von Gegnern geben, sodass es mit der Zeit schwieriger werden würde, die Angreifer abzuwehren.

Skizzen

dokuIMG_0630doku.JPGdokuIMG_0630doku.JPG
dokuIMG_0631doku.JPGdokuIMG_0631doku.JPG
dokuIMG_0632doku.JPGdokuIMG_0632doku.JPG
dokuIMG_0633doku.JPGdokuIMG_0633doku.JPG
dokuIMG_0634doku.JPGdokuIMG_0634doku.JPG
dokuIMG_0635doku.JPGdokuIMG_0635doku.JPG
dokuIMG_0636doku.JPGdokuIMG_0636doku.JPG

______________________________________________________________

3D Modeling - Rhinoceros

Rhinoceros ist ein Programm zur Erstellung von 3D Models. Wir haben uns wegen der simplen Bedienung und aufgrund unserer Vorkenntnisse in diesem Programm für dieses entschieden. Rhino hat die geometrischen Grundformen eingespeichert und mit wenigen Klicks lassen sich diese leicht zusammenfügen und bearbeiten. Zu Anfang haben wir in Rhino Formen-Brainstorming betrieben, und kamen so, durch unseren ersten gebauten Tower, der starke Ähnlichkeit zu dem Gherkin aufwies, auf die Architektur Londons. Wir bauten also einige Londoner Gebäude in Rhino nach und entschieden, unseren geplanten Charakter ebenfalls aus dem Londoner Milieu kommen zu lassen. Wegen dessen Animationen, bauten wir diesen aber in Blender, s.u. Um dem Spiel einen lustigen und ansprechenden Charme zu verpassen, entschieden wir, dem Bobby, Polizist in London, die Aufgabe der Geistervertreibung zuzuschreiben. Wir modelten also zwei verschiedene Geister in Rhino und fügten diese in unser Spiel ein.

dokuBildschirmfoto 2015-06-24 um 03.54.30doku.pngdokuBildschirmfoto 2015-06-24 um 03.54.30doku.png
dokuBildschirmfoto 2015-06-24 um 03.53.38doku.pngdokuBildschirmfoto 2015-06-24 um 03.53.38doku.png
dokuBildschirmfoto 2015-06-24 um 03.56.57doku.pngdokuBildschirmfoto 2015-06-24 um 03.56.57doku.png

______________________________________________________________

3D Modeling und Animation - Blender

Bei Blender handelt es sich um ein 3D Programm für das Erstellen, Texturieren, Animieren und Rendern von 3D Modellen. Also perfekt für das Generieren von statischen, sowie animierten 3D Charakteren und Objekten für ein Computerspiel. Wir haben uns anstelle von Maya und Cinema 4D für Blender entschieden, weil es ein open-source-Programm ist, es viele Erklärvideos im Netz gibt und sich die „.blend files“ (Blender-Dateien) einfach in Unity reinladen lassen, so dass man auf die beigefügten Inhalte, wie z.B Textur und Animation, separat zugreifen kann. Allerdings hat dieses Programm auch seine Tücken. Es absolut Anfänger unfreundlich und man muss viele Shortcuts beherrschen um einen stetigen Workflow zu bekommen. Die etlichen Fenster, Panels und Funktionen in dem Programm machen es einerseits kompakt und mächtig, aber erfordern auf der anderen Seite sehr viel Programmkenntnis, was es nicht leicht für Beginner macht. Der Vorgehensweise beim Erstellen eines Charakters geht wie gefolgt: Der erste Schritt ist das Modellieren. Der Zweite ist das Texturieren, anhand einer UV-Map. Der Dritte das so genannte „Rigging“. Dabei baut man ein „Armature“, ein Skelett, dass die Bewegung des 3D-Modells vorgibt. Das „weight painting“ gehört ebenfalls zum „Riggen“. Dort wird noch festgelegt welche Polygone tatsächlich von den Bones beeinflusst werden. Der vierte und letzte Schritt ist das Erstellen der Animation. Wenn man alle Schritte durchgegangen ist, kann man den Character direkt in Unity importieren und in das Spiel samt der UV-Map und Animationen integrieren. Unser Fazit lautet: Animation könnte ein eigener Kurs sein.

policeman.jpgpoliceman.jpg
policeman_uv_texture.pngpoliceman_uv_texture.png
policeman2.jpgpoliceman2.jpg
untitled.40.jpguntitled.40.jpg

______________________________________________________________

Umsetzung in Unity

Es war für uns alle drei, das erste mal, dass wir uns mit einem Programm zur Generierung von Spielen auseinander gesetzt haben. Unity war Segen und Fluch zugleich. Das Programm vereinfacht viele Dinge sehr, wie das einfache Erstellen von Spielebenen oder dem „public“-mode, bei dem die mit „public“ betitelten Teile des programmierten Codes direkt in der Seitenleiste aufgeführt werden, ohne, dass man direkt in das c# script einsteigen muss. Andererseits, ist es für Neueinsteiger sehr komplex und schwierig zu verstehen. Unity hat allerdings auch einige Probleme. Diverse Male entschied Unity sich grundlos dazu, abzustürzen, unseren Vortschritt, manchmal teilweise, manchmal gänzlich, zurückzusetzen, und manchmal funktionierte eine script-Verlinkung nicht. Nach und nach lernten wir Unity näher kennen und wussten diese Probleme zu umgehen, und sei es auch nur, indem wir unsere Festplatten mit Sicherungskopien bombardierten. Während der Programmierung und Gestaltung des Spiels mussten wir einige Konzeptideen überarbeiten. Es stellte sich bei manchen Ideen heraus, dass sie schlecht umsetzbar sind oder unpraktisch zu spielen wären. So z.B. unsere pathfinding Idee. Es stellte sich als unpraktisch heraus, in unserem Spiel die Angreifenden sich den Weg selbst finden zu lassen, da z.B. Prioritäten des Ziels schlecht zu bestimmen waren und das Spiel bei leicht fehlerhaften Programmierung leicht in eine ungewollte Richtung sich wenden könnte. So generierten wir einen vorgegebenen Weg, mit Checkpoints für die Angreifenden, damit klare Angriffsprioritäten das Spiel bestimmen.

dokuBildschirmfoto 2015-06-24 um 03.50.20doku.pngdokuBildschirmfoto 2015-06-24 um 03.50.20doku.png
dokuBildschirmfoto 2015-06-24 um 03.51.36doku.pngdokuBildschirmfoto 2015-06-24 um 03.51.36doku.png
dokuBildschirmfoto 2015-06-24 um 03.51.51doku.pngdokuBildschirmfoto 2015-06-24 um 03.51.51doku.png
dokuBildschirmfoto 2015-06-24 um 03.52.23doku.pngdokuBildschirmfoto 2015-06-24 um 03.52.23doku.png
Bildschirmfoto 2015-09-30 um 14.20.47.pngBildschirmfoto 2015-09-30 um 14.20.47.png
Bildschirmfoto 2015-09-30 um 14.23.20.pngBildschirmfoto 2015-09-30 um 14.23.20.png

______________________________________________________________

Fachgruppe

Perspektiven und Social Skills

Art des Projekts

Studienarbeit im ersten Studienabschnitt

Betreuung

foto: FW foto: Prof. Constanze Langer

Zugehöriger Workspace

Jede_r kann programmieren: Spiele-Klassiker mit Unity3d

Entstehungszeitraum

Sommersemester 2015