Bellring Games erklärt in DevNote #9 ungewöhnlich offen, warum Treffer in Mistfall Hunter manchmal einfach verschwinden und Ausweichrollen zurückgezogen werden.
Die kurze Antwort: Der Server hat immer das letzte Wort, und genau das soll auch so bleiben.
Warum Schaden "verloren geht"
Ob ein Treffer zählt, entscheidet in Mistfall Hunter der Server. Damit sich Kämpfe trotzdem direkt anfühlen, zeigt euer Client Blut und Trefferton schon vorher an, auf Basis einer eigenen Vorhersage. Diese Client-Side Damage Prediction ist standardmäßig aktiv.
Durch die Netzwerklatenz liegen Client und Server aber nie ganz gleich. Zwei Situationen sorgen deshalb für "verlorenen" Schaden:
- Der Gegner ist laut Server schon aus der Reichweite, auf eurem Bildschirm aber noch drin.
- Der Gegner war beim Ausweichen laut Server unverwundbar, euer Client hat das aber noch nicht gesehen.
Erschwerend kommt das schnelle Kampfsystem dazu. Das aktive Trefferfenster des ersten Schlags mit Schwert und Schild dauert gerade einmal 62 Millisekunden, da verzeiht die Synchronisierung wenig.
Warum ihr beim Ausweichen zurückgesetzt werdet
Beim Ausweichen ist es ähnlich: Euer Client startet die Rolle sofort, der Befehl erreicht den Server aber erst nach der Upload-Latenz. Hat euch der Server bis dahin schon getroffen, werdet ihr zurückgezogen und kassiert den Schaden trotzdem. Das gilt für jede Fähigkeit im Spiel.
Dazu kommt die Rechenlast auf dem Server. Er berechnet für jeden Charakter und jedes Monster alle Animationen und Hitboxen. Laufen viele Kämpfe gleichzeitig, sinkt die Server-Framerate, und die Probleme häufen sich. In Brandrgarde passiert das öfter als in Hallowgrove, weil dort deutlich mehr Monster unterwegs sind.
Warum Bellring trotzdem beim Server bleibt
Würde das Spiel dem Client mehr vertrauen, würden sich Angriffe für den Angreifer besser anfühlen. Bei hoher Latenz auf Angreiferseite hätte aber das Opfer das Nachsehen, und Cheats hätten viel mehr Spielraum. Bellring hat sich deshalb bewusst für Trefferberechnung auf dem Server entschieden, im Sinne von Fairness und Anti-Cheat.
Wer lieber gar keine falschen Treffer sieht, kann die Vorhersage in den Einstellungen abschalten. Der Preis dafür: Treffer fühlen sich verzögert an.
Was schon verbessert wurde
- Kleinere Vorhersage-Hitbox: Die Client-Vorhersage nutzt jetzt eine etwas kleinere Hitbox als die echte Trefferberechnung, um Fehlanzeigen zu reduzieren.
- Server-Performance: Schutz gegen DDoS-Angriffe, Wechsel des AWS-Speichers gegen sekundenlange Ruckler, kein Hyper-Threading mehr auf den Servern, effizienteres Logging und Monster, die ohne Spieler in der Nähe weniger Last erzeugen.
- Synchronisierung: mehr Toleranz für Folgeangriffe nach dem Ausweichen und genauere Anzeige der Ausweichrichtung von Gegnern.
Was noch kommt
Bellring verlagert Blueprint-Logik nach C++, um die Server zu entlasten, und testet mit AWS stärkere CPU-Modelle. Beides soll schrittweise kommen, sobald die Tests abgeschlossen sind. Wie sich das Spiel seit dem Next Fest entwickelt hat, könnt ihr in unserem Artikel Vom Next-Fest-Hype zur Millionen-Marke nachlesen.
FAQ
Warum treffe ich in Mistfall Hunter, aber der Gegner nimmt keinen Schaden?
Euer Client zeigt den Treffer vorab an, der Server entscheidet wegen Latenz oder Unverwundbarkeit beim Ausweichen aber anders. Das ist ein Vorhersagefehler, kein verlorener Schaden.
Kann ich die Treffer-Vorhersage abschalten?
Ja, in den Einstellungen. Dann gibt es keine falschen Treffer mehr, das Feedback fühlt sich aber verzögert an.
Warum ruckelt Brandrgarde öfter als Hallowgrove?
Weil dort mehr und dichter verteilte Monster unterwegs sind, was die Server stärker belastet.