Tag 2 - Umdenken

Sagte ich, dass ich ein Sphere-Mädchen bin und dabei bleiben will? Tja, so kann auch ich mich irren. In der letzten Woche habe ich mich, wenn ich genug vom Schreiben hatte, mit Emulatoren befasst, ein bisschen rumgetestet und Sphere schließlich schweren Herzens beiseite gelegt. Stattdessen habe ich mich an ServUO herangetraut und bin begeistert.

Mit C# als Scriptsprache muss ich zwar einiges neues lernen, aber dafür gibt es mir die Gelegenheit, etwas neues zu lernen. Also habe ich mich wieder einmal auf Sololearn begeben und mich mit den absoluten Grundlagen befasst. Dazu kommt, dass es eine sehr aktive Community gibt, die ich mit Fragen löchern kann.

Die großen Teilbereiche

Mapping

An der Vorgehensweise beim Mapping ändert sich nicht viel. Das heißt immer noch Pixelmaps erstellen, in ein .bmp mit indizierten Farben verwandeln und dann konvertieren. In erster Linie ist das eine Fleißarbeit, bei der ich immer noch ein bisschen Probleme habe, die Größenverhältnisse von Drachenruh vernünftig darzustellen. Oder auch nur ein Gefühl dafür zu bekommen.

Nach einem Rat aus besagter, großartiger ServUO-Community habe ich also einmal die Standard-Map als png extrahiert, damit ich mir ansehen kann, wie die Städte sich verteilen und wie groß sie sind. Anhand dessen kann ich denke ich im Notfall auch die Form von Eivrune anpassen, sodass ich vernünftig bauen kann.

Da ich inzwischen nicht mehr ganz so dagegen bin unterschiedliche Maps zu nutzen, ist es theoretisch auch möglich, verschiedene Kontinente auf verschiedene Maps zu legen und damit die ganze Welt abzudecken, wenn mir danach ist und die Spielerzahlen es irgendwann erlauben.

Scripting

Das mit dem Scripting ist gegenüber dem Mapping tatsächlich ein Fass ohne Boden, aber eines das ich gern angehe, wenn ich einfach nur etwas logisches und strukturiertes angehen möchte. Gerade an diesem Punkt und als Anfänger erweist sich die KI übrigens als sehr hilfreich. Nicht für Vibe-Coding - da bin ich beim Scripting noch zu misstrauisch - aber als Tutor! Das Konzept dafür ist eigentlich recht simpel.

Ich habe die Antigravity IDE so eingerichtet, dass sie sich ServUO und meine Scripte ansehen kann. Ich habe außerdem einen Ordner mit Anweisungen angelegt, der Gemini sagt, was es wie tun soll - in dem Falle, mir einen Lösungsweg erklären, meine Arbeit überprüfen und mir kleine Challenges geben, die mein Wissen vertiefen sollen. Ich habe außerdem festgelegt, dass ich so wenig wie irgend möglich an den ServUO-eigenen Scripten ändern möchte um spätere Updates einfacher zu gestalten.

Wenn ich jetzt etwas neues erstellen möchte, bitte ich Gemini mir zu erklären wie es geht und erstelle mir nach dieser Anleitung eine Vorlagendatei, die Gemini dann überprüft. Im Anschluss erstellt Gemini mir eine Bedienungsanleitung dafür und schreibt sie in meinen Dokumentations-Ordner. So kann ich sicherstellen, dass ich nicht durch alle Scripts schauen muss um mich daran zu erinnern, was ich letzten Monat an den Scripts getan habe.

Macht die KI also meine Arbeit? Zum Teil - sie nimmt mir die Dokumentation meines Codes ab, weil ich ihr gesagt habe sie soll es tun. Sie schaut meinen Code an, bevor ich den Server kompiliere und, soweit es bisher der Fall ist, findet die gröbsten Fehler (meistens weil ich irgendwo ein Semikolon vergessen habe). Gleichzeitig stellt sie mir immer wieder kleine Aufgaben, die ein System verfeinern oder effektiver machen. Für meinen Küchengebrauch reicht es also vollkommen - und da ich den Code trotzdem selbst schreiben muss, lerne ich dabei noch etwas.

Was ich bisher umsetzen konnte

  • Ein Klassensystem das mit einem Klassenstein/Klassenbuch arbeitet und sich automatisch erweitert, wenn weitere Klassendateien zugefügt werden. Die Klassen setzen ihr jeweiliges Stat-Maximum, Skill-Caps soweit eingestellt und die Gainraten für die Skills. Außerdem wende ich hier Multiplikatoren für Hits, Stamina und Mana an. Füge ich eine weitere Klasse hinzu, bekommt das Buch eine Seite mehr.
  • Einen GeneralMerchant, der den Provisioner ersetzt. Das stellt sicher, dass in jedem noch so kleinen Dorf nahezu alles verkauft werden kann, was Spieler von der Jagd mitbringen. Auf unserem "Spaßspielserver" von Ruins & Riches war das einer der größten Schmerzpunkte. Wenn man eine Stadt wirklich mag sollte das Fehlen eines Händlers um bestimmte Beute zu verkaufen kein Hinterungsgrund sein sich dort niederzulassen.
  • Quality of Life-Systeme, wie das Festlegen eines Lootbeutels und der Beute die automatisch eingesammelt werden soll. Ein Befehl um einen Reagenzienbeutel festzulegen in den man dann per Befehl alle Reagenzien verschieben kann. Einen Umpacken-Befehl, der entweder alle Gegenstände aus einem Beutel in einen anderen Verschiebt, oder alle Gegenstände eines Typs aus einem Beutel in einen anderen verschiebt. Niemand möchte nach einer Jagd drei Stunden damit verbringen, seine Beute zu sortieren.

Was kommt als nächstes?

  • Ein Rassensystem, das bestimmte Rassenboni mitbringt
  • Neue Handwerksmaterialien, die die Alten ersetzen beziehungsweise ergänzen. Das betrifft Leder, Erze, Holz und Stoff.
  • Neue Rezepte, zunächst einmal zum Kochen, später auch für die anderen Berufe.
  • Eigene Klassenbücher, in denen eigene Zauber hinterlegt sind. Damit verbunden sind natürlich auch eigene Schriftrollen die in der Welt gefunden werden können.

Bauen

Der Bau ist ein weiterer riesiger Brocken. Zum Glück kann ich das deutlich strecken, da ich für eine Testphase mit der OSI-Map die Systeme testen (lassen) kann, während ich mich daran mache nicht nur die neuen Gebäude zu entwerfen, die später in der Welt zu finden sein sollen, sondern auch die neuen Deeds, die von Spielern gesetzt werden können die kein bestehendes Haus anmieten wollen. Letztlich bedeutet das, dass die Umstellung auf die neue Map mit den neuen Statics erst dann erfolgt, wenn es auch fertig ist.

Das funktioniert vor allem, weil ich CentrED und UO Architect zum Bauen verwende, die nicht darauf angewiesen sind, dass die Files auch auf dem Testserver liegen. Sie müssen nur im jeweiligen angegebenen Verzeichnis sein. Bis ich damit durch bin werde ich mich allerdings mit aller Gewalt davon abhalten, den Fiebertraum namens Britain oder OSI-Baustil allgemein anzugehen.

Muls

Hier kommen wir zu einem Teil, den ich wirklich mag! Um eigene Grafiken in Ultima Online einzufügen - sei es das unglaublich große Archiv auf UO Pixel oder tatsächlich selbst gezeichnetes, muss es in die Mul-Dateien gepatcht werden. Ich persönlich nutze dafür UO Fiddler, für den ihr auf der Webseite von UO Pixel auch einen hervorragenden Guide auf Deutsch finden könnt. Dieser Schritt geht auch Hand in Hand mit dem Scripting, da neue Anziehsachen natürlich auch hergestellt werden wollen.

Trotzdem ist auch dieser Prozess etwas, das man zum Glück strecken kann. Wichtig ist erst einmal, das alles was ich zum Bauen und Mappen brauche auch vorhanden ist. Und damit sich das nicht bis ins nächste Jahrhundert hinzieht...

Bis zum nächsten Mal!

Server

Serverversion
ServUO
Clientversion
7.0.15.1

Scripting

Sprache
C#

Skill-Level
Ich erkenne die Dateiendung


Toolbox

Map und Art zeichnen
Affinity Photo 2/Photoshop CS2

Map patchen
UO Landscaper 1.5

Bau/Statics
CentrED#

Muls Patchen
UOFiddler

Gump Editing
UO Gump Editor

Scripting
Visual Studio Community

Dokumentation & Guides
Obsidian & World Anvil


Kommentare

Please Login in order to comment!
Powered by World Anvil