Systemübersicht

Features im Detail

Umgesetzte und geplante Systeme von Nordlicht

Hier findest du eine strukturierte Übersicht über aktuelle Kernsysteme und kommende Erweiterungen, die Havenborn als langlebige Roleplay-Welt aufbauen.

Präzise Währungslogik mit Centbeträgen

So ist es in native Altis Life und auf vielen Servern:

Durch technische Grenzen bei großen Zahlen arbeiten viele Server nur mit vollen Euro- oder Dollarbeträgen. Centbeträge lassen sich bei höheren Summen oft nicht mehr sauber mitrechnen, besonders bei kleinen Änderungen wie ±0,01. Dadurch entstehen häufig unnatürliche Preise, zum Beispiel 65 Euro für einen Apfel oder 1.500 Euro pro kg Kupfer.

So haben wir es verbessert:

Wir haben die Geldverarbeitung grundlegend überarbeitet und rechnen intern mit einer präzisen Logik statt klassischer Fließkomma-Berechnung. Dadurch bleiben auch bei sehr hohen Kontoständen Änderungen im Centbereich exakt möglich. So können Preise realistisch dargestellt werden: ein Apfel z. B. 0,60 Euro und 1 kg Kupfer 11,50 Euro.

Was bringt das im Spiel?

Das wirtschaftliche Verhältnis und der Fortschritt bleiben erhalten, aber die Preiswelt wirkt deutlich stimmiger, nachvollziehbarer und näher an realen Größenordnungen.

Für Technikbegeisterte: das Problem und die Lösung im technischen Detail
Technischer Hintergrund - Warum nutzen so viele Server keine Centbeträge?

Arma 3 nutzt für Zahlen den Datentyp Number. Dieser ist eine sogenannte Single-Precision Float, also eine 32-Bit-Fließkommazahl nach dem IEEE-754-Standard. Bei dieser Speicherart wird eine Zahl im System in Vorzeichen, Exponent und Mantisse aufgeteilt. Die Mantisse hat exakt 24 Bits zur Verfügung, um die eigentlichen Ziffern der Zahl zu speichern.

Daraus ergibt sich, dass ganze Zahlen von 0 bis 16.777.216 absolut exakt dargestellt werden können. Würde man diese Zahl als Centbeträge nutzen, läge die Grenze bei gerade einmal 167.772,16 Euro. Möchte man ab dieser Grenze auch nur einen Cent hinzufügen, wird dieser von der Engine ignoriert. Erst bei größeren Sprüngen, zum Beispiel +10 Cent, verändert sich der Wert wieder. Nutzt man stattdessen direkt Nachkommastellen (Floats), schlägt die Ungenauigkeit im System sogar noch früher zu.

Daher nutzen die meisten Server diese Zahl als volle Euro. Damit sind Beträge bis rund 16,77 Millionen Euro absolut exakt. Und wenn ein Spieler erst einmal so viel Geld besitzt, fällt es auf dem Konto kaum noch auf, wenn bei einer Transaktion mal 1 Euro "verschluckt" wird.

Unsere Lösung

Um dieses Problem komplett zu umgehen, nutzen wir für unsere Geldbeträge das Standard-Zahlenformat von Arma 3 überhaupt nicht.

Alle Geldbeträge werden bei uns als reine Centbeträge im String-Format gespeichert. Für mathematische Operationen haben wir eigene Funktionen geschrieben: Die Strings werden zerlegt, in Arrays aufgeteilt und über maßgeschneiderte Schleifen Ziffer für Ziffer miteinander addiert, subtrahiert, multipliziert oder dividiert.

Das ist in der Entwicklung aufwendiger, garantiert uns aber mathematisch exakte Ergebnisse. Somit können wir selbst bei Milliardenbeträgen noch präzise mit +/- 1 Cent rechnen.