Die Grundlagen, die durch jeden Editor laufen, von Koop und Sprachen über Spielstände bis zum Steam-Deck-Build und den Tests.
Koop-Multiplayer für bis zu 5 Spieler
Die Terra Engine ist für Koop mit bis zu 5 Spielern gebaut: ein Gastgeber plus Gäste. Die Spieler können gleichzeitig in verschiedenen Gebieten sein, weil der Gastgeber mehrere Gebiete gleichzeitig laden kann.
Ein Rechner ist Gastgeber und rechnet alles, was gespeichert wird: Welt, Objekte, Story, Quests, Gegner, Uhr und Beute. Gäste schicken nur die Befehle ihres Helden und zeigen an, was der Gastgeber sendet. Allein spielen nutzt denselben Weg, mit deinem eigenen Rechner als Gastgeber.
Inventar, Werte, Fortschritt, Eingabe, Pause, Dialog und Schlaf werden je Held geführt, und das Spielstand-Format trennt Weltdaten und Spielerdaten. Das Gegner-Balancing skaliert schon mit der Zahl der Helden im selben Gebiet.
Ehrlicher Stand: Gastgeber-Modell, Netzwerk-Schicht und Tests sind fertig. Online-Spiel über Steam-Lobbys und Einladungen wird noch ergänzt, plane deine Veröffentlichung also nach dem, was du selbst getestet hast.
Sprachen und Textdienst
Aller Text, den ein Spieler sieht, liegt in einem Textdienst als deutsche und englische Einträge (24 Textdateien in unserem Spiel), und das Spiel liest ihn über eine einzige Funktion.
Die Sprachliste ist erweiterbar. Heute sind Deutsch und Englisch dabei, und der geplante Entwurf ergänzt weitere Sprachen über Standard-Übersetzungsdateien. Dialoge lassen sich für Übersetzer exportieren und importieren.
Die Editor-Oberfläche selbst ist heute deutsch, eine englische Oberfläche ist in Vorbereitung.
Feste Weltobjekt-IDs
Die Engine vergibt die ID jedes Weltobjekts. Sie wird nie aus Pfad, Name oder Listenplatz abgeleitet, eine umbenannte Truhe oder ein verschobenes Objekt verliert also seinen Zustand nicht.
Der Zustand zieht beim Umbenennen mit der ID um, verwaiste Zustände werden gemeldet, und unbekannte IDs bekommen einen Alias oder eine Meldung, statt still verworfen zu werden.
Spielstand-System und Migration
Das Spielstand-System hat Plätze und schreibt atomar mit Sicherung. Das Format ist versioniert (aktuell Version 17) und hat Migrationsstufen.
Für jede frühere Version von Format 8 bis 17 gibt es eine echte Testdatei, alte Spielstände laden also weiter, wenn du die Engine aktualisierst.
Steam-Deck-Export und Größen-Wächter
Eine fertige Export-Vorgabe baut ein Linux-Paket für das Steam Deck, mit getrenntem Datenpaket, und ein nächtliches Build-Skript führt sie aus. Ein Größen-Wächter hält ein Budget und eine Grundlinie, die nur schrumpfen darf, das Paket wächst also nicht unbemerkt.
Exporte für Windows, macOS, Linux und Web nutzen den Export-Mechanismus der zugrunde liegenden Engine. Der Steam-Deck-Weg ist der, den wir nachts für unser eigenes Spiel fahren.
Automatische Tests und Prüfungen
Rund 1.400 Testdateien decken die Spielsysteme ab. Eine Typ-Prüfung sorgt dafür, dass untypisierter Code nicht zunimmt, und ein Lint-Skript, eine Text-Prüfung und eine Test-Warteschlange laufen mit.
Architektur-Schichten und Balancing-Zahlen werden von Skripten mit Grundlinien geprüft, die nur besser werden dürfen, die Qualität rutscht also nicht ab, während das Projekt wächst.