projectsDer GPORTAL-Zoo

Read Time: 6 Minutes

Katzen48 | Tobi

Nun ist es soweit.

Der GPORTAL-Zoo, ein Minecraft-Server der ganz besonderen Art hat geöffnet.


Viel Arbeit und Liebe sind sowohl von unserer Seite als auch vonseiten GPORTALs in das Projekt geflossen.

Fast ein Jahr ist es her, dass wir mit dem Projekt begonnen haben und seit den Anfängen ist eine ganze Menge passiert.

Unsere Builder sind zwar schnell, aber auch sie benötigen Zeit für ein Projekt dieser Größe.

Doch beginnen wir am Anfang.


Von der Idee zum fertigen Konzept

Natürlich bearbeitet sich so ein Projekt nicht von selbst.

Die Maps müssen von Buildern gebaut und die Plugins von Entwicklern entwickelt werden.

Damit das einwandfrei von der Bühne geht, musste ein Konzept entwickelt werden, was sowohl bei uns als auch bei unserem Partner Anklang findet.

Doch wie konzeptioniert man etwas so Komplexes, dass Builder und Entwickler am Ende damit auch etwas anfangen können?


Naja, so ein Konzept beginnt eigentlich immer mit einer Abstimmung zwischen Auftraggeber und Auftragnehmer.

Wir haben also einen Termin mit dem Marketing von GPORTAL vereinbart, wo wir erstmal den generellen Rahmen abgesteckt haben.

Was ist die Grundidee? Was soll der Spieler im Zoo machen können? Welche Gehege soll es geben?


Als wir dann ein generelles Bild von dem Projekt hatten, haben wir angefangen und Concept Arts angefertigt.

Dies diente einerseits dazu, die Bilder in unserem Kopf auch für andere greifbar zu machen, um uns mit unserem Partner über unsere Ideen austauschen zu können, andererseits aber auch als Vorlage für das spätere Aussehen der Maps.



Nachdem wir die Concept Arts fertiggestellt, an GPORTAL gegeben und uns Feedback eingeholt haben, begann auch schon die Arbeit.

Angefangen mit der Lobby wurden die Maps gebaut.


Die Lobby im Bau

Begonnen hat die Lobby auf einer Flat World. Berge etc. konnten wir für unser Vorhaben alles nicht gebrauchen.

Wir brauchten schließlich Platz, viel Platz.

Um möglichst viele Spieler aufnehmen und ihnen auch lange noch Unterhaltung bieten zu können, müsste ein Gebiet mit einer Länge von 1.250 Blöcken geschaffen und bebaut werden.


Während der Arbeit haben unsere Terraforming-Experten viel von WorldEdit und Voxelsniper Gebrauch gemacht.

Das Gebirge um die eigentliche Lobby musste den Bereich, in dem sich Spieler aufhalten können, eingrenzen, dabei aber auch möglichst natürlich wirken.

Damit war der erste Schritt auch schon geschafft.


Dann ging es weiter an das eigentliche Blöckesetzen.

Erst kam das grobe Gerippe.

Mauer, Treppen, das Eingangstor aber auch der komplette Boden mussten haargenau geplant und gebaut werden, damit auch im Nachhinein noch weitere Elemente hinzugefügt werden konnten.

Schließlich mussten auch noch die Gehege gebaut werden und die brauchten eben auch: Platz.


Auch nach einigen Wochen Bauzeit war die Lobby noch ziemlich leer. Keine Geschäfte, keine Fressbuden und auch keine Minispiele.

Die Flächen für die Gehege waren jedoch schon festgelegt und der Außenbereich gebaut.

Um die Lobby in ihrer ersten Version fertigzustellen mussten jetzt noch Häuser her.

Deren Flächen wurden zunächst festgelegt, um ein grobes Layout zu haben.

Im Anschluss begannen die Bauarbeiten.


Zum Schluss kam die Einrichtung der Gebäude.

Restaurants, Keksläden und ähnliches sollte der Lobby ihren ganz eigenen Touch verleihen und den Spielern die Möglichkeit geben, immer wieder etwas neues zu entdecken.


Nachdem wir mit der Lobby soweit fertig waren, zeigten wir GPORTAL die erste Map und sie waren hellauf begeistert.

Natürlich hat jeder seinen eigenen Geschmack, aber im Großen und Ganzen war das Feedback sehr positiv.

Mit dem Feedback und kleinen Anpassungswünschen machten wir uns dann wieder an die Arbeit.

Wir hatten ja schließlich erst 1/5 der Arbeit geschafft.


Von klein nach groß

Jetzt galt es die Gehege zu bauen.

Doch wie baut man Gehege so, dass dort im besten Fall 100e Spieler hineinpassen, die Map aber nicht so überdimensioniert wird, dass ein Spieler Stunden benötigt, um von einem zum anderen Ende zu kommen.

Die Antwort war klar: von klein nach groß


In der Lobby mussten also kleine Gehege gebaut werden und sobald der Spieler diese betritt, landet er in einer größeren Version desselben Geheges und kann dort die für das Gehege spezifischen Quests erledigen.

Dieses Vorgehen hatte auch noch einen weiteren Vorteil.

Wir konnten die großen Versionen des Geheges auf einzelnen Servern laufen lassen und konnten dadurch eine höhere Anzahl an Spielern beherbergen und auch an den einzelnen Gehege Wartungsarbeiten durchführen, ohne die anderen Gehege oder gar die Lobby zu beeinträchtigen.

Von diesem Konzept überzeugt, machten wir uns also an die Arbeit.


Das erste Gehege war das Shooter-Gehege.

Angelehnt an eine der bekanntesten Shooter-Maps bauten wir also die Miniatur einer Wüsten-Map.

Bei Abmessungen von nicht einmal 66 x 70 Blöcken ist nicht viel Platz.

Dennoch wollten wir möglichst viele kleine Details einbauen.

Die kleine Version musste ja schließlich später auf eine große Map hochskaliert werden.


So bauten wir also nun die einzelnen Gehege. Erst in klein und dann in groß.

Nach dem Shooter-Gehege kam das Farming-Gehege, dann das Wikinger-Gehege und das Dinosaurier-Gehege.

Das ging natürlich nicht in einem Rutsch, da außer uns ja noch GPORTAL an dem Projekt beteiligt war und deren Marketing viele Ideen hatten, die es umzusetzen galt.


In mehreren Iterationen bauten wir an den Gehegen und zwischendurch auch an der Lobby.

Nach einigen Monaten waren wir dann zufrieden.

Es war geschafft.

Die Maps waren bautechnisch fertig.

Doch damit war es nicht getan.


Ein bisschen (Quest-)Spaß muss sein

So ein Server besteht nicht nur aus einer Map.

Um Spielern ein tolles Erlebnis zu bieten ist bei weitem mehr notwendig.

Quests z.B.


Thematisch zu den Gehegen passend, haben wir uns zusammen mit GPORTAL Quests ausgedacht, bei denen die Spieler gerne ihre Zeit auf dem Server verbringen möchten.

Jedes Gehege hat dabei seine eigene "Geschichte" bekommen, welche durch die Quests erzählt werden sollte.


So muss der Spieler im Shooter-Gehege zunächst Aufgaben erledigen, die ihm den Gebrauch seiner Ausrüstung und die Map näher bringen, bevor er sich in den Kampf stürzen und in einem PVP-Modus mit anderen Spielern messen kann.

Im Farming-Gehege hingegen befindet dieser sich auf dem ruhigen Land, wo er von den Einwohnern Aufträge annimmt und ihnen bei der Ernte hilft.


Doch sich Quests ausdenken ist ja schön und gut.

Schreibt man Dokumente mit Abläufen, kann der Minecraft-Server diese noch lange nicht lesen und in Gameplay-Features umsetzen.

Es musste also programmiert und konfiguriert werden.


Über etwa sechs Monate hinweg, haben wir mit unterschiedlichen Technologien wie Data Packs, Plugins und YAML-Konfigurationen versucht, die Quests in Befehle umzusetzen, die die Minecraft-Engine versteht.

Dabei sind wir auf viele Hürden gestoßen.

Doch konnten wir uns von diesen aufhalten lassen? Nein.


Für die Quests benötigten wir ein Plugin, welches in allen Gehegen funktioniert und so dynamisch ist, dass wir damit alle Eventualitäten hätten abdecken können.

Das war gar nicht so einfach.

Am Ende haben wir uns an ein anderes, vergangenes Projekt erinnert: Debitor's "Die Legende des Netheritschwerts".


Damals haben wir mithilfe von Data Packs und den Advancements eine spannende Story in einer Minecraft Map verpackt.

Ob nun das einfache Holen von Gegenständen oder das Bezwingen eines Bossmonsters, mit den Advancements konnten wir alles abdecken.

Leider nur im Singleplayer...


Auf einem Server ist das noch etwas komplizierter.

Daten müssen in eine Datenbank gespeichert und aus dieser wieder geladen werden, Interaktionen müssen für mehrere Spieler simuliert werden und und und.

So etwas konnte uns Minecraft mit Data Packs einfach nicht bieten.

Also mussten wir selbst etwas entwickeln.


Ausgehend von den Advancements entwickelten wir also die RPG API.

Ein dynamisches Quest-System, welches sowohl sequenzielle Anordnungen von Quest-Schritten als auch die parallele Erfüllung von Abschlusskriterien erreichen konnte.

Bei dem bevorstehenden Arbeitsumfang war jedoch klar, dass auch jemand ohne Programmierkenntnisse in der Lage sein musste, Quests aufzubauen und diese per Quest-NPC einem Spieler anbieten zu können.

Somit mussten die Quests per Konfigurationsdatei erstellbar sein.


Mir ist klar, dass nicht jeder den Arbeitsaufwand, in Minecraft dynamisches Verhalten per Konfigurationsdatei zu implementieren, einordnen kann.

Spätestens beim Lesen der Zeilenanzahl, die in Code und Konfiguration geflossen sind, wird aber wahrscheinlich jeder schlucken.

Insgesamt sind 19.506 Zeilen Code geschrieben worden, ausschließlich von einer einzelnen Person.

Die Quests wurden innerhalb von 12.690 Zeilen erstellt und konfiguriert (auch größtenteils von einer Person).

9 Plugins wurden entwickelt, um die benötigten Funktionen auf den 5 Maps bereitzustellen.


Unser Fazit

Vielen Dank schon mal für das Lesen unseres ersten Blog-Beitrags :)


Insgesamt war das Projekt eine Menge Arbeit.

In diesem Blog-Artikel haben wir über einiges berichtet, aber auch vieles unerwähnt gelassen.


So wurde mit keinem Wort die großartige Arbeit unseres Partners AREON Pictures, die den Trailer produziert haben, erwähnt.

Sie haben sich unglaublich viel Mühe gegeben und Engagement gezeigt, bis der Trailer mit der 7. Version endlich fertig war.


Auch haben wir bisher kein einziges Mal über die umfangreiche Zusammenarbeit mit GPORTAL gesprochen.

Nach ein paar Startschwierigkeiten haben wir uns regelmäßig ausgetauscht und einiges an Feedback bekommen.

Zur IT kann man auch nur sagen: 10/10 would recommend.


Zu guter Letzt: Bisher blieb auch die großartige Arbeit aller am Projekt beteiligten Mitglieder des Chrotos Teams unerwähnt.

Weiter so, Leute.

Ihr. Seid. Klasse.

Ich weiß, Adihab und ich haben gerne mal etwas genervt, aber ihr habt euch gut reingehängt und dafür gesorgt, dass wir nun endlich Live sind.





Das war es erstmal.

Danke für's Lesen.

Wir sehen uns auf dem Server.

Ciao


P.S.: AMOGUS


P.P.S.: Wir haben für euch ein paar Secrets auf der Map versteckt. Vielleicht sieht/liest man sich ja bald wieder ;)