You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 54 Next »

von: T. Lamping, I. Kraft, M. Bösling

Grundidee

Unsere Grundidee war es, ein klassisches Rollenspiel im Stil vom alten Zelda zu entwickeln. Des weiteren haben wir uns überlegt alle Grafiken selber zu erstellen, um auch in diesem Bereich Erfahrungen zu Sammeln.

Die Motivation im Rollenspiel liegt unter anderem beim Erkunden und Sammeln von Erfahrung und Gegenständen. Dies bedeutet einen großen Aufwand im Bereich des Grafikdesigns. Um diesen Aufwand etwas geringer zu halten und dem Spieler trotzdem zu motivieren, mussten wir uns noch mit weiteren Motivationskonzepten auseinandersetzen.

Als Hauptmotivation sollte uns "die Verhinderung eines andern Zieles" dienen. Das bedeutet in unserem Fall, dass der "Endgegner" das Dorf überfallen will und wir ihn aufhalten müssen. Damit soll der Spieler dazu bewegt werden, dass Spiel bis zum Schluss zu spielen, denn ohne ihn wird schließlich das Dorf vernichtet.

Eine weitere Idee war es, das Dorf als Basis zu nehmen, von dem aus Missionen gestartet werden können. Diese Missionen führen den Spieler zu unterschiedlichen Herausforderungen, wie z.B. das lösen von Rätseln.

 

Konzept

Genre: Rollenspiel

Darstellung: 2D, top-down Ansicht

Zielgruppe: Gelegenheitsspieler

Spielewelt: Fantasy, frühes Mittelalter

Gameplay / Motivation: Erkundung, Kampf, Dorf retten

  •  Das Grundkonzept ist, dass Beschützen des Dorfes vor dem Plünderer.
  • Am Ende gibt es einen "Bosskampf".
  • Der Endkampf wird leichter um so mehr wir uns darauf vorbereitet haben. (Schwertquest)
  • Vorbereiten können wir uns, in dem wir "Gegenstände" sammeln. (Schwert Sammeln)
  • Es gibt verschiedene Welten in den wir Missionen lösen. (die Schwertinsel)

 

Playthrough

Grafiken

Ein Großteil der Arbeit war es Grafiken zu erstellen. Mit Inkscape, einem Programm zur Erstellung von Vektrografiken, wurden nach verschiedenen Inspirationen aus dem Internet oder anderen Computerspielen, versucht Figuren zu erstellen. Der Vorteil der Vektrografik war es, dass wir uns nicht auf eine spezielle Auflösung bei der Erstellung festlegen mussten.

Es wurden 10 Animierte Figuren erstellt, mit jeweils der Bewegungs und idle (Leerlauf) Animation. Die Hauptfigur bekahm noch 3 weitere Animation mit unterschiedlichen Waffen. (Axt zum Baumfällen, Holzschwert, Stahlschwert) Die 12er Sprite Sheets wurden dabei direkt in Inkscape erstellt und die größeren mit Spriter als Bone Animation.

Im folgenden ein paar Beispiele.

 

 

Der Protagonist von Village Defender.

.

 

 

Für die Animation mussten für alle 4 Richtungen Sprite Sheets erstellt werden. Genau so für den Wechsel der Ausrüstung. Hier hat sich der Vorteil von Spriter als Bone Animations Programm gezeigt, da man hier Gegenstände leichter ersetzen kann und die selbe Animation beibehält.

 

 

 

Zu Beginn des Projektes sah der Held noch etwas anders aus, aber die Farben sind geblieben


Die Dorfbewohner und Gegner

Die Dorfbewohner haben weniger komplexe Sprite Sheet's für ihre Animation bekommen, da sie nicht dauernd im Fokus sind. Des weiteren haben wir beschlossen, uns alle einmal an den Grafiken zu versuchen, was in leicht unterschiedlichen Stilen zu erkennen ist. Im Prototypen sahen wir dies als vertretbar an, für ein fertiges Endprodukt, würden wir uns genauer an einem Stil halten.

 

 

 


 

 

 

 

 

 

 

 

 

Die Spielwelt

Abgesehen von der Erstellung der Figuren musste auch eine Vielzahl an Grafiken für die Welt erstellt werden. Dabei wurde der Boden als Tilemap erstellt, wofür ein Tileset gebraucht wurde. Die anderen Objekte wie Häuser, Pflanzen, Gegenstände wie Schilder, Brunnen und Brücke wurden als Objekte eingesetzt.Insgesammt kommt man bei den Objekten etwa auf 50 Grafiken und ca. 10 Tilsets für Land, Wasser, Wüste, Steine, etc.

Des weitern gibt es kleinere Animationen für das Baumfällen, Toröffnen oder z.B. für den Springbrunnen.

 

 

Das Dorf in dem sich der Spieler frei bewegen kann.

Einer der 3 Hauptzonen. Hier auf dem Marktplatz findet der Endkampf statt.

Das Waldgebiet und erste Quest um Holz zu sammeln. Mit einem Ork auf patrouille und Gegnern hinter den Bäumen.

 

 

Die Schwertinsel mit seinem Rätsel.

Ein Tileset in128px mal 128px für Tiled erstellt, um die Karte zu Generieren. Jeder Grashalm ist dabei als Vektor gespeichert, was das System schonmal ins Schwitzen bringen kann, solange man es nicht als png exportiert.

 

Ein Haus mit seinen Einzelteilen.

Der Spielablauf


Im Folgenden Bild sehen wir eine Schematische Darstellung des Spielablaufes. Um das Ziel (rot) zu erreichen, müssen wir erst alle Aufgaben (grün) lösen.

 

 

 

Am Anfang findet der Spieler sich im Dorf wieder. Dort erfährt er, dass er ein Schwert finden muss, um den Endboss besiegen zu können. Dieses allerdings befindet sich auf einer Insel, welche nur mit einer Brücke erreicht werden kann. Um die Brücke zu reparieren, wird Holz benötigt.

So ist die erste Aufgabe des Spielers, genügend Holz durch das Fällen von Bäumen im Wald zu sammeln. Dabei stellen sich ihm aber Gegner in dem Weg, die er mit seinem Holzschwert bekämpfen kann.

Ist die Brücke repariert, so gelangt der Spieler auf die Insel, wo das Schwert zu finden ist. Das Schwert wiederum befindet sich hinter einem Tor, welches nur mit einem Juwel geöffnet werden kann. Um an das Juwel zu kommen, muss ein Rätsel gelöst werden. Dabei geht es darum, Steine zu verschieben und den richtigen Weg (Labyrinth) zum Juwel zu finden.

Sobald der Spieler das Schwert hat, geht es zurück zum Dorf, wo der Endboss auf dem Marktplatz wartet. Dieser muss nun besiegt werden, um das Spiel erfolgreich zu beenden.

 

 

 

 

 

Scripte

Der andere Großteil der Arbeit war es Scripte zu erstellen. Wir haben insgesammt 35 Scripte geschrieben mit großen Funktionen, wie z.B. das Inventar- oder Dialog-System. Oder nur kleine, wie z.B. ein Trigger für den Endkampf und das Erscheinen des Endgegners.

 

 

 

Das Inventar-System dient der Anzeige für Questaufgaben, wie z.B. dem Sammeln vom Holz. Das Inventar kann man öffnen und schließen. Für zukünftige Versionen hat das Inventar größeren Platz bekommen als es momentan im Spiel benötigt. Auch der x-Button ist noch nicht implementiert und dient nur als Platzhalter für spätere Funktionen um das Inventar gegebenfalls zu leeren.

Mit dem Dialog-System können jedem Npc eine Anzahl an Sätzen zugeordnet werden. Je nach Questfortschritt werden unterschiedliche Antworten aus den gespeicherten Sätzen gegeben.

Ein teleportations Script um zwischen verschiedenen Ein- und Ausgängen zu Springen. Dies Funktioniert zwischen Zwei verschiedenen Szenen, so wie auch innerhalb einer Szene.

 

 

 

 

 

Fazit

Schwierigkeiten gab es bei der größe des Projektes. Die Anzahl an Grafiken, Animationen und Scripten wuchs während der Entwicklung immer schneller an und bald war klar, dass wir unsere Vorstellungen nicht so Umsetzen können, wie wir gerne wollten.

Wir haben uns deshalb daran orientiert einen Prototypen zu entwerfen, der in sich abgeschlossen sein soll. Für Unity gibt es viele Scriptbeispiele und Tutorials, doch mussten diese erst erlernt und auf unser Projekt angewendet werden. Durch den Verzicht auf fertige Scripte und Grafiken und die selbstständige Erarbeitung dieser, haben wir viel Erfahrungen gesammelt, die jedoch auf Kosten von anderen Bereichen gegangen sind. In so fern, wurde bei unserem Projekt, der Fokus eher auf den Weg der Erstellung, als auf das fertige Produkt gelegt.

 

Folgend ein paar Beispiele von Problemen die während des Projektes aufgetreten sind.

 

 

 

 

 

Das Layerorder Problem führte dazu, dass Objekte in falscher Reinfolge dargestellt werden. Z.B. wenn der Spieler um einen Baum läuft, ist er mal vor ihm und dann wieder hinter ihm. Hier haben wir uns für eine einfache Lösung entschieden, so dass der Spieler garnicht mehr vor den Baum gehen kann.

 

 

Das Dialogsystem war eine größere Herrausforderung als erwartet. Die erste Überlegung war es, eine XML-Datenbank im Hintergrund zu betreiben. Es hat sich aber Herrausgestellt, dass für den Prototypen eine komplexe Baumstruktur mit Rede- und Antwortsystem für den Anfang zu groß ist. Außerdem gibt es im Prototypen noch keine Situation, in der wir so ein System brauchen. Deshalb haben wir uns für eine einfachere Version entschieden und die Texte dem jeweiligen Objekt einzeln im Script zugewiesen.

So ist es möglich, das je nach Weltereignissen (Questfortschritten) die NPC's (Non Player Charakter) unterschiedlich Antworten.

 

Zeitaufwand

Folgend eine grobe Übersicht über die Aufgewendeten Stunden für den jeweiligen Bereich.

 

PersonThemenGesamtzeit in Stunden
M. BöslingTeambesprechungen u. Organisation20 + 20
 Grafik und Design80
 Animationen20
 Scripte150
 Sound10
I. KraftTeambesprechungen u. Organisation 
 Grafik und Design 
 Animationen 
 Scripte 
 Sound 
T. LampingTeambesprechungen u. Organisation30
 Grafik und Design30
 Animationen10
 Scripte200
 Sound30

 

 

 

 

 

Umsetzung und verwendete Software

Es gab Überlegungen auf den "RPG-Maker" zurückzugreifen, oder in Unity mithilfe von C# selber zu Programmieren. Wir haben uns bei dem Kompromiss zwischen Arbeitsaufwand und Freiheit der Gestaltung für Unity entschieden. Des weiteren haben wir zur Erstellung der Grafiken Inkscape benutzt und zur gleichzeitigen Bearbeitung in Unity Github verwendet. Hier einmal eine vollständige Auflistung der Verwendeten Software:

 

 

  • Adobe Photoshop
  • Gimp
  • Inkscape
  • Unity
  • Github
  • Discord
  • Spriter
  • Audacity
  • Tiled
  • Tiles2Unity
  • Scribbus
  • Magix Music Maker

 

 

  • No labels