Hey Leute, hier ist AL. Willkommen zum ersten Blick hinter die Kulissen von Mortumus.

Während Fin in den Server-Minen steckt und sich mit Datenbanken, Subscriptions und all der gruseligen Distributed-Systems-Zauberei herumschlägt, die die Welt am Laufen hält, bin ich am anderen Ende dafür zuständig, dass jeder Schwerthieb, jeder Schritt, jedes Fackeln-Flackern und jedes Stück Rüstung auf eurem Bildschirm auch wirklich gut aussieht und sich richtig anfühlt.

Ein Dark-Fantasy-MMO baut man nicht einfach per Drag-and-Drop aus einem Asset Store zusammen. Das raue, oldschool Gefühl, das wir anstreben (das Gewicht des Kampfes, das Knarren deiner Rüstung, das Grauen, wenn du einen anderen Spieler am Horizont siehst) entsteht nur, wenn die Werkzeuge darunter speziell dafür gebaut sind. Deshalb ziehe ich heute den Vorhang zurück und zeige euch ein paar der individuellen Unity-Systeme, die wir auf der Client-Seite zusammengebastelt haben: die Systeme, die niemand jemals sehen wird, aber die jeder spüren wird.

Los geht's.

Visuals, Loot und PvP-Privatsphäre

Wenn es eine Wahrheit über MMO-Spieler gibt, dann diese: Wir lieben Gear. Und in einem Full-Loot-PvP-Spiel wie Mortumus ist Gear nicht nur ein Dopamin-Kick, sondern auch Information. Was jemand trägt, verrät dir, was er mit dir anstellen kann.

Halte es geheim, halte es sicher: Equipment Visualizer

Früh haben wir ein Problem erkannt, das viele MMOs stillschweigend ignorieren: Wenn der Client die exakte Item-ID jedes Ausrüstungsteils an jedem sichtbaren Spieler kennt, kann ein entschlossener Cheater das aus dem Speicher auslesen und deine genauen Stats wissen, bevor er sich entscheidet, dich zu ganken.

Unser Equipment Visualizer macht daher etwas leicht Paranoisches. Für deinen eigenen Charakter liest er aus dem vollen Equipment-Service, du siehst alles über deine Ausrüstung. Aber für jeden anderen Spieler liest er nur einen abgespeckten "Visuals"-Blob, den der Server veröffentlicht. Du siehst das Schwert, nicht das Stat-Sheet. Die Item-IDs fremder Spieler verlassen Fins Server schlicht nie.

Eine Kleinigkeit. Aber sie macht Memory-Scraping-Cheats deutlich weniger nützlich. Guter Tausch.

Der Animation Stack

Skill-basierter Kampf steht und fällt mit der Animation. Wenn der Windup nicht lesbar ist, kannst du nicht reagieren. Wenn der Treffer nicht sitzt, fühlt sich der Kampf gewichtslos an. Wenn der Tod aussieht, als würde das Modell einfach... abgeschaltet, geht die halbe Stimmung verloren.

Player Animation Coordinator

Wir haben so angefangen, wie die meisten es tun: eine riesige Animation-Controller-Klasse, die alles verwalten sollte. Bewegung, Zauber, Tod, Treffer, Idles, alles in einer Datei. Nach etwa zwei Wochen war es ein Chaos.

Also haben wir es aufgeteilt. Jetzt ist der Player Animation Coordinator ein winziger Einstiegspunkt, der einen Stapel kleiner, spezialisierter Module hochfährt: Bewegung, Rotation, Angriff, Zauber, Trefferreaktionen, Tod, Idles. Jedes Modul macht eine Sache. Jedes Modul ist für sich lesbar. Bugs zu finden dauert Minuten statt Stunden.

Saubererer Code für mich. Strafferer Kampf für euch.

Kampf-Responsivität: Attack Animator & Spell Animator

Hier ist das klassische MMO-Problem: Server-autoritative Kampfmechanik ist der einzige Weg, Cheating zu verhindern, aber auf die Server-Bestätigung jedes Casts zu warten fühlt sich an wie Sirup.

Unser Spell Animator mogelt ein bisschen, aber ehrlich. Wenn du deine Zauber-Taste drückst, spielt die Cast-Animation sofort ab, lokal vorhergesagt, sodass es sich instant anfühlt. Dann validiert Fins Server, ob der Cast tatsächlich erlaubt war (cooldown abgelaufen, genug mana, Ziel gültig usw.). Bestätigt er, ändert sich nichts. Lehnt er ab, brechen wir sauber ab.

Der Attack Animator macht denselben Tanz für Nahkampf und skaliert sogar die Schwunggeschwindigkeit passend zur Kadenz, die der Server für deine Waffe vorgibt. Deine Augen sehen reaktionsschnellen Kampf. Der Server sieht eine Welt, die man nicht belügen kann.

Dieser Sweetspot zwischen "fühlt sich gut an" und "spielt fair" ist der Ort, an dem dieses ganze Spiel lebt.

Die Klänge des Reiches

Audio macht 50% der Stimmung aus, und Leute unterschätzen immer, wie viel Arbeit da drinsteckt.

Die Atmosphäre setzen: Audio Manager & Music Region System

Traditionelle Spiele wechseln die Musik meist mit einem harten Schnitt, wenn man eine unsichtbare Linie überquert. Das ist abrupt. Wir machen es mit 3D-Polygon-Zonen. Das Music Region System lässt uns beliebig geformte Bereiche in der Welt malen (ein verwunschener Hain, eine verfluchte Kapelle, der Weg zu einem Boss), und wenn du hinein- und hinausgehst, crossfadet der Audio Manager den Soundtrack sanft. Keine Schnitte. Kein Neustart desselben Tracks, wenn du über die Grenze trittst.

Und weil das alles über gepoolte Audio-Quellen mit Mixer-Group-Routing läuft, kostet es im Frame-Budget praktisch nichts.

Der Character Audio Manager

Jeder Schritt in Mortumus ist mit der Animation deines Charakters und dem Untergrund unter dir verknüpft: Stein klingt wie Stein, Schlamm klingt wie Schlamm. Zauber-Sounds sind an die Fähigkeit gebunden, Waffenschwünge an die Waffe. Der Character Audio Manager sitzt zwischen den Animation-Events und dem Audio Manager, sodass wir neue SFX-Pakete pro Rasse/Klasse austauschen können, ohne Gameplay-Code anzufassen.

Kleine Dinge. Viele davon. Sie summieren sich.

Am Wasserrand

Jede Dark-Fantasy-Welt hat Wasser. Sümpfe, Flüsse, überflutete Ruinen, das Meer am Rand eines verfluchten Kaps. Und Wasser ist eines dieser Dinge, die sehr schnell fake aussehen, besonders dort, wo es auf Land trifft. Diese hässliche polygonale Wasserlinie, wo das Mesh das Terrain schneidet, ist das Markenzeichen eines billig aussehenden Spiels.

Unsere Wasser-Basis

Wir haben unser Wasser nicht von Grund auf gebaut. Unity liefert tatsächlich ein fantastisches Demo-Projekt namens Boat Attack mit, das eines der besten URP-Wassersysteme da draußen enthält: echte Reflexionen, Refraktionen, Auftrieb, das volle Programm. Also haben wir mit dem Wasser von Boat Attack als Fundament angefangen, weil es uns Monate gekostet hätte, das Rad neu zu erfinden, ohne echten Gewinn.

Aber Boat Attack wurde für, naja... Boote gebaut. Schöne, saubere Ozean-Küstenlinien. Das Küstenlinien-Verhalten, das an einem Sandstrand super aussieht, sieht furchtbar aus an den schlammigen, schilfigen, unregelmäßigen Wasserläufen, die wir in Mortumus tatsächlich wollen. Also mussten wir chirurgisch vorgehen.

Der Custom Shader: Water Shoreline

Statt das Unity-Paket direkt zu bearbeiten (was bei jedem Update kaputtgegangen wäre), haben wir einen dünnen Custom Shader "WaterShoreline" geschrieben, der nur das Stück der Pipeline austauscht, das für die Küste zuständig ist. Alles andere (Reflexionen, Flow Maps, Caustics) kommt direkt von Boat Attack. Wir überschreiben nur, was wir brauchen.

Die zwei großen Änderungen:

Der harte 2-Meter-Schaum-Cutoff ist weg. Boat Attacks Standard-Schaumband hat einen festen Tiefen-Cutoff, der dir diesen gleichförmigen "weißen Ring" um jede Küste gibt. Wir haben ihn durch einen weicheren Falloff plus ein scrollendes Noise-Feld ersetzt, sodass der Schaum jetzt allmählich verblasst und in organische Zungen und Finger zerfällt statt in ein perfektes Band.

Weiche Küstenlinien-Transparenz. Das Problem mit der polygonalen Wasserlinie am Terrain? Wir faden das Wasser selbst über den letzten halben Meter Tiefe zu transparent. Die Wasserlinie verschwindet komplett. Das Terrain wird einfach dunkler, je tiefer es unter Wasser geht, so wie eine echte nasse Küstenlinie.

Mortumus water shoreline with soft foam and natural alpha blending

Unser Flusssystem

Die Sache mit dem Wasser von Boat Attack ist: Out of the Box handhabt es Ozeane wunderschön, aber es weiß nicht wirklich, was ein Fluss ist. Wasser kann an Ort und Stelle kräuseln, aber es kann nicht flussabwärts fließen und um eine Biegung herum, wie ein echter Fluss das tut. Das ist ein Problem, wenn die Hälfte deiner Dark-Fantasy-Welt sumpfig, von Flüssen durchzogen und durchnässt sein soll.

Also haben wir ein Flusssystem darauf aufgebaut.

Ein Fluss in Mortumus wird als Fließpfad angelegt, eine einfache Polylinie aus Punkten, die das Rückgrat des Flusses von der Quelle bis zur Mündung nachzeichnet. Designer setzen die Punkte, wo sie Wasser fließen lassen wollen, und der Shader erledigt den Rest: Für jedes Pixel der Wasseroberfläche ermittelt er, welches Segment des Fließpfads am nächsten liegt, und nutzt die Richtung dieses Segments als lokale Strömung. Ergebnis: Wasser an einem geraden Abschnitt fließt gerade, Wasser an der Innenseite einer Biegung kurvt mit der Biegung, und alles geht dazwischen fließend ineinander über.

Die Texturen, Normalen und der Schaum scrollen alle entlang dieser Fließrichtung statt ziellos zu treiben. Du kannst tatsächlich sehen, in welche Richtung der Fluss fließt.

Mortumus river with directional water flow Unity editor showing the river flow path authoring system

All das ist live über ShoreFoamTuner einstellbar, eine kleine Inspector-Komponente, die wir auf jede Szene mit Wasser legen. Slider für Schaum-Weichheit, Noise-Skalierung, Noise-Stärke, Drift-Geschwindigkeit, Alpha-Falloff. Ändere die Stimmung eines ganzen Sees, ohne ein Material anzufassen.

Community und Trash Talk: Chat & Soziales

Ein Oldschool-MMO dreht sich genauso um die Leute wie um das Spiel. Wenn die Social-Tools sich schlecht anfühlen, fühlt sich die Welt leer an.

Overhead Chat System

Text direkt über dem Kopf eines Charakters verankert, der ihm folgt, wenn er sich bewegt, und in der Entfernung verblasst: ein absoluter Klassiker des Genres und etwas, wofür wir bis zum Letzten kämpfen werden.

Es verwandelt Gruppen in echte Gespräche. Es lässt dich jemanden mitten im Kampf trashtalken. Es lässt die letzten Worte eines sterbenden Spielers etwas Dummes und Lustiges sein statt einer System-Log-Zeile. Das Overhead Chat System kümmert sich um Pooling, Distance Culling und Anchor Tracking, sodass es auch dann skaliert, wenn zwanzig Leute sich gleichzeitig in einem engen Dungeon anschreien.

Gut aussehen

Sei ehrlich: Du wirst eine peinliche Menge Zeit im Charakter-Bildschirm verbringen. Wir alle tun das. Es ist der schönste Spiegel im Spiel.

Das Charakter-Vorschau-System

Unser Paperdoll ist kein gebackener 2D-Render, sondern eine live 3D-Szene, die in eine UI-Render-Texture gerendert wird. Volle Beleuchtung, echte Geometrie, jedes Ausrüstungsteil an dir in Echtzeit. Dreh es, zoom rein, starr es an. Es ist die Art von Feature, die das Gameplay überhaupt nicht ändert und absolut verändert, wie sich das Spiel anfühlt.

Mortumus character creation screen with live 3D preview

Die Taschen füllen: Icon Studio

Hier ist ein kleines schmutziges Geheimnis der MMO-Entwicklung: Icons. Du brauchst Hunderte davon. Jedes Schwert, jeder Trank, jedes Stück Müll-Loot, das du in einer Truhe findest, braucht sein eigenes kleines 64x64-Quadrat, das in einem vollgestopften Inventar gut lesbar ist. Und sie müssen alle so aussehen, als gehörten sie zum selben Spiel.

Du kannst nicht einfach ein 3D-Modell screenshotten und es gut sein lassen. Die Beleuchtung muss konsistent sein. Der Kamerawinkel muss konsistent sein. Und (das ist der Teil, den jeder unterschätzt) die Bildkomposition muss zur Rastergröße passen, die das Item im Inventar einnimmt. Ein 1x1-Dolch und ein 2x3-Großschwert brauchen völlig unterschiedliche Kompositionen, sonst sehen beide falsch aus.

Unsere Lösung: Icon Studio

Icon Studio ist ein Custom-Unity-Editor-Fenster, das wir gebaut haben, damit eine Person (meistens ich, vor mich hin murmelnd) hundert konsistente Icons am Stück produzieren kann, ohne den Verstand zu verlieren.

Der Workflow: Wirf eine Liste von Item-Prefabs rein. Sag dem Tool, welche Rastergröße jedes im Inventar einnimmt: 1x1, 2x2, 2x3, 1x4, was auch immer. Richte die Kamera einmal aus. Speichere die Einstellung als Preset. Drück auf Generieren.

Der Clou ist, dass die Rastergröße nicht nur kosmetisch ist, sie steuert den tatsächlichen Render. Ein 2x3-Item wird mit 2x Breite und 3x Höhe (einer 512px-Basis) gerendert, sodass die Proportionen korrekt sind, wenn es in deinem Inventar liegt, nicht gestreckt. Ein Langschwert füllt tatsächlich einen 1x4-Slot diagonal. Ein Trankfläschchen passt wirklich in 1x1. Das Inventar fühlt sich an, als würdest du echte Objekte sortieren.

Darüber hinaus handhabt das Tool: transparente oder individuelle Hintergründe pro Item, Bone-Pose-Capture, damit skelettbasierte Items ihre Anzeige-Pose speichern können ohne das Gameplay-Rig zu stören, und Presets für ganze Item-Kategorien: alle Äxte rendern mit derselben Kamera, alle Tränke mit einer anderen. Konsistenz geschenkt.

Das Endergebnis ist, dass jedes Icon im Spiel (die, die bei 32 Pixeln in einem dichten Inventar-Raster gut lesbar sind) vom tatsächlichen In-Game-Modell gerendert wurde, in der tatsächlichen Form, die das Item in deiner Tasche einnimmt. Keine ausgelagerte 2D-Kunst. Keine inkonsistente Beleuchtung. Kein Dolch, der irgendwie größer aussieht als ein Großschwert in der UI.

Es ist die Art von Tool, die niemand sieht. Es ist auch der Grund, warum das Inventar nicht wie eine Tüte voller zusammengewürfelter Stock-Art aussieht.

Bis zum nächsten Mal

Keines dieser Systeme ist ein Headline-Feature von Mortumus. Niemand wird das Spiel kaufen, weil die Schritte gut klingen oder weil Skelette in Physik-Trümmer explodieren. Aber das sind die Knochen unter allem: die unsichtbare Arbeit, die dafür sorgt, dass die großen Sachen sich richtig anfühlen, wenn sie darauf aufbauen.

Mit diesem Fundament können Fin und ich die tatsächliche düstere, brutale Full-Loot-Welt bauen, die wir seit zwei Jahren in Notizbücher kritzeln, in einem Tempo, das uns nicht dazu bringt, unsere Computer in einen Fluss werfen zu wollen.

— AL