Technisches Facelifting für RIFT
Februar 4, 2016
Hallo, Leute!
Snedhepl hier mit dem Bericht zur Lage der RIFT-Nation – Schwerpunkt technische Entwicklung.
In diesem Artikel werde ich kurz skizzieren, was sich im letzten Jahr alles getan hat – sowohl im Bereich Features als auch bezüglich unserer internen Prozesse.
Des Weiteren werde ich im Verlauf meiner Ausführungen kurz unsere Planungen fürs nächste Jahr anreißen.
Dabei gilt mein Hauptaugenmerk der wohl aufregendsten Neuerung: der echten Multicore-Unterstützung für Rendering.
In der jüngeren Vergangenheit wurden bereits zahlreiche neue Features in RIFT integriert.
Einige dieser Neuerungen, wie Furchtlos-Sofort-Abenteuer und Angriffsmodus, stachen sofort ins Auge;
andere, wie etwa Optimierungen des Aktionshauses oder des Gildenladevorgangs, waren nicht unbedingt auf Anhieb zu erkennen.
Zudem wurden an der Entwicklungsfront auch noch andere – nicht minder wichtige – Schlachten geschlagen:
der stete Kampf gegen Bots, das erbitterte Ringen um Performanzverbesserungen bei den Bestenlisten sowie blutige Scharmützel
bei der Verfeinerung des Meldesystems seien an dieser Stelle als Beispiele genannt.
Das Ergebnis dieser verlustreichen Waffengänge ist bedauerlicherweise vielfach nur indirekt erkennbar.
Zu unser aller Freude erwies sich die Einführung der Furchtlos-Abenteuer in RIFT als klassische Erfolgsstory!
Zwar tauchten hier und da immer mal wieder kleinere technische Schwierigkeiten auf, doch das ist bei Neuimplementierungen beileibe nichts Ungewöhnliches.
Letztlich sprechen die Verbesserungen für sich, der mit ihnen verbundene Aufwand hat sich absolut gelohnt.
Auch die am Auktionshaus vorgenommenen Optimierungen haben zu der gewünschten Verbesserung geführt: einer nicht eben unerheblichen Verringerung der Suchzeiten.
Aber bei der Einführung all dieser neuen Features galt es auch, so manche Niederlage wegzustecken.
Das Tuning des Gildenladevorgangs z. B. erwies sich als überaus harte Nuss. Hier gab es anfänglich zahlreiche Serverabstürze und Bugs zu beklagen.
Schließlich stand nach Überwindung sämtlicher “Kinderkrankheiten” glücklicherweise dann doch noch das von uns erhoffte Ergebnis:
Der auf einigen Servern um sagenhafte 25 % verringerte Speicherverbrauch hat insgesamt eine erhebliche Steigerung der Serverleistung bewirkt.
Selbst im Kampf gegen die dunklen Mächte haben wir mittlerweile die Oberhand gewonnen!
Die Zahl entdeckter und aus dem Spiel entfernter Bots steigt von Tag zu Tag.
Dies mag zwar wie ein Nebenkriegsschauplatz erscheinen, doch Bots haben immense negative Auswirkungen auf das Wirtschaftsgefüge des Spiels.
Ihre Entfernung dient der Förderung der Spielbalance und ist daher von nicht zu unterschätzender Bedeutung.
Weitere nennenswerte Errungenschaften beinhalten das Garderobensystem.
Unser früheres System war zwar in Ordnung, aber das Upgrade hat es – meiner Meinung nach – zum Besten der Branche gemacht.
Ihr könnt eure Kleidung nun mit einer Auswahl an 99 Farben färben. Die Gegenstände, die ihr sammelt, müsst ihr nicht mehr im Inventar aufbewahren, um sie zu benutzen,
und es gibt auch keinerlei Einschränkungen beim Ausrüsten von Rüstungen oder Waffen.
Außerdem haben wir dieses Jahr eine Premiere in RIFT gefeiert: Wir haben zum ersten Mal eine neue Klasse hinzugefügt.
Die Entwicklung des Primalisten war eine beeindruckende Leistung, aber die Klassendesigner können nicht sämtliche Lorbeeren einheimsen,
da das Systemdesignteam unzählige Iterationen überarbeitet und auf das Gameplay-Feedback von Spielern und Kollegen reagiert hat.
Sie haben unzählige Nächte und Wochenenden daran gearbeitet, die neue Berufung ins Leben zu rufen.
Zu guter Letzt gab es noch einige Änderungen am Meldesystem.
Vor einigen Monaten haben wir dieses System im Stillen verbessert. Wenn ihr früher jemanden gemeldet habt, wurde diese Person eurer Ignorieren-Liste hinzugefügt.
Nun wird die Person beim Ignorieren mit einer virtuellen “schwarzen Markierung” belegt, die serverübergreifend für den entsprechenden Account gilt.
Das Wechseln des Charakters oder des Servers entfernt die Markierung also nicht.
Wenn ein Spieler eine bestimmte Anzahl an schwarzen Markierungen erhält, wird dies dem Support gemeldet, der den Fall dann untersucht und notwendige Maßnahmen ergreifen kann.
Wird der Spieler weiterhin gemeldet, wird er vom System stummgeschaltet und muss warten, bis ein Support-Mitarbeiter sich darum kümmert.
Bevor wir nun zu den technischen Prozessen kommen, möchte ich einen Begriff erklären, den ich verwenden werde: “technische Schuld” bzw. “technische Schulden”.
Dieser Begriff umfasst nicht nur Bugs sondern auch alle anderen technischen Aspekte, die so verarbeitet wurden, dass ihre Wartung oder ihr weiterer Ausbau erschwert ist.
Wartung ist wichtig: Wenn man ein Programm entwickelt, ist das im Prinzip mit dem Bau eines Hauses vergleichbar … nur dass dieses Haus ständig umgebaut,
mit neuen Leitungen ausgestattet und erweitert werden muss. Es gehört leider zur Realität des Programmierens, dass man manchmal kein solides “Fundament” legen kann,
bevor man ein neues “Zimmer” baut. Und wenn das passiert, hat man technische Schulden, die weitere Arbeiten nach sich ziehen,
damit die Dinge in Zukunft wie ursprünglich vorgesehen funktionieren.
Jede technische Abteilung hat bestimmte Methoden, um Inhalte, Bugs und die Kommunikation zwischen verschiedenen Disziplinen anzugehen.
Im Lauf des letzten Jahres haben wir für den Kampf gegen technische Schulden aufgerüstet.
Dies war uns immer ein wichtiges Anliegen, aber um weitere Fortschritte zu erzielen, formalisieren wir unsere Prozesse.
Wenn wir beispielsweise an Inhalten arbeiten, konzentrieren wir uns in den folgenden zwei Wochen auf den Bereich “technische Schuld”.
Der Vorteil dabei ist, dass wir Dinge auf diese Weise in festgelegten Zeitabschnitten zielgerichtet verbessern können.
Es wurde in verschiedenen Studien belegt, dass Menschen – insbesondere Software-Techniker – darunter leiden, wenn sie mitten in ihren laufenden Aufgaben unterbrochen werden,
um sich etwas anderem zuwenden zu müssen. Durch die Einführung festgelegter Arbeitsblöcke erlauben wir ihnen,
sich besser auf die Probleme zu konzentrieren und künftig noch effektiver zu arbeiten.
Doch nun zum spannendsten kommenden Feature: echte Multicore-Unterstützung!
Das ist eine wirklich großartige Nachricht, die über ein Jahr unter Verschluss gehalten wurde!
Dies ist die größte Änderung, die wir überhaupt an RIFT durchführen können, denn sie betrifft das Rendering der gesamten Spiel-Engine.
Die einzige noch größere Änderung wäre, das Spiel von Grund auf neu zu programmieren.
Warum ist das so wichtig? RIFT läuft mit einer Grafik-API namens DirectX 9 (DX9).
Sie erlaubt dem RIFT Client, direkt mit der Grafikkarte eures Computers zu kommunizieren.
Das Problem ist, dass die in die Jahre gekommene DX9 für Computer mit nur einem Prozessorkern entwickelt wurde und die CPU ziemlich stark belastet.
Die Technologie hat sich enorm weiterentwickelt und Multicore-Computer (Computer mit mehreren Prozessorkernen) sind heute die Norm.
RIFT wird bald echte Multicore-Unterstützung bieten, was sich auf eurem Computer mit besseren Framerates und Reaktionszeiten auswirken wird und sicherstellt,
dass eure CPU-Geschwindigkeit kein Grafikkarten-Throttling verursacht.
“Hey, Snedhepl – Ich versteh kein Wort von dem ganzen technischen Kauderwelsch. Kannst du das nicht in normalem Deutsch erklären?!”
Stellt euch vor, ihr entwerft ein Fahrzeug, um Leute von CPUhausen nach Grafikkartenweiler zu fahren. Diese Leute sind die Rendering-Anweisungen.
Um sie nach Grafikkartenweiler zu bringen, würdet ihr vermutlich einen Bus bauen, weil er das effizienteste Fahrzeug wäre,
um so viele Menschen von einem Ort an einen anderen zu transportieren.
Viele Jahre später wird die Straße von CPUhausen nach Grafikkartenweiler aber zu einer vierspurigen Autobahn ausgebaut.
Ist ein Bus dann immer noch die beste Wahl? Nun, es dauert ziemlich lange, einen Bus mit Leuten zu füllen.
Auch das Beschleunigen und Spurwechsel nehmen Zeit in Anspruch. Also nehmen wir stattdessen mehrere Autos.
Aber auch diese Lösung ist nicht perfekt – schließlich müssen all die Leute bei der Ankunft dieselbe Ausfahrt nehmen,
wobei es vielleicht sogar zu einem größeren Crash kommt! (Ja, das Wortspiel musste jetzt einfach sein. )
Da wir nun aber mehrere Spuren und Ausfahrten haben, sind Autos natürlich eine viel bessere Lösung.
Sie werden schnell voll und sind auch sonst viel flotter unterwegs. Und genau diesen Effekt hat die Multicore-Unterstützung bei RIFT.
Die Multicore-Unterstützung befindet sich derzeit im geschlossenen Alphatest und wir hoffen, diese Änderung in naher Zukunft in einer offenen Beta testen zu können.
Wir sind total aus dem Häuschen, weil wir nun endlich offen über die Leistungsverbesserung sprechen können, an der wir seit über eineinhalb Jahren gearbeitet haben!
Wir können es kaum erwarten, euer Feedback dazu zu hören!
Februar 4, 2016
Hallo, Leute!
Snedhepl hier mit dem Bericht zur Lage der RIFT-Nation – Schwerpunkt technische Entwicklung.
In diesem Artikel werde ich kurz skizzieren, was sich im letzten Jahr alles getan hat – sowohl im Bereich Features als auch bezüglich unserer internen Prozesse.
Des Weiteren werde ich im Verlauf meiner Ausführungen kurz unsere Planungen fürs nächste Jahr anreißen.
Dabei gilt mein Hauptaugenmerk der wohl aufregendsten Neuerung: der echten Multicore-Unterstützung für Rendering.
In der jüngeren Vergangenheit wurden bereits zahlreiche neue Features in RIFT integriert.
Einige dieser Neuerungen, wie Furchtlos-Sofort-Abenteuer und Angriffsmodus, stachen sofort ins Auge;
andere, wie etwa Optimierungen des Aktionshauses oder des Gildenladevorgangs, waren nicht unbedingt auf Anhieb zu erkennen.
Zudem wurden an der Entwicklungsfront auch noch andere – nicht minder wichtige – Schlachten geschlagen:
der stete Kampf gegen Bots, das erbitterte Ringen um Performanzverbesserungen bei den Bestenlisten sowie blutige Scharmützel
bei der Verfeinerung des Meldesystems seien an dieser Stelle als Beispiele genannt.
Das Ergebnis dieser verlustreichen Waffengänge ist bedauerlicherweise vielfach nur indirekt erkennbar.
Zu unser aller Freude erwies sich die Einführung der Furchtlos-Abenteuer in RIFT als klassische Erfolgsstory!
Zwar tauchten hier und da immer mal wieder kleinere technische Schwierigkeiten auf, doch das ist bei Neuimplementierungen beileibe nichts Ungewöhnliches.
Letztlich sprechen die Verbesserungen für sich, der mit ihnen verbundene Aufwand hat sich absolut gelohnt.
Auch die am Auktionshaus vorgenommenen Optimierungen haben zu der gewünschten Verbesserung geführt: einer nicht eben unerheblichen Verringerung der Suchzeiten.
Aber bei der Einführung all dieser neuen Features galt es auch, so manche Niederlage wegzustecken.
Das Tuning des Gildenladevorgangs z. B. erwies sich als überaus harte Nuss. Hier gab es anfänglich zahlreiche Serverabstürze und Bugs zu beklagen.
Schließlich stand nach Überwindung sämtlicher “Kinderkrankheiten” glücklicherweise dann doch noch das von uns erhoffte Ergebnis:
Der auf einigen Servern um sagenhafte 25 % verringerte Speicherverbrauch hat insgesamt eine erhebliche Steigerung der Serverleistung bewirkt.
Selbst im Kampf gegen die dunklen Mächte haben wir mittlerweile die Oberhand gewonnen!
Die Zahl entdeckter und aus dem Spiel entfernter Bots steigt von Tag zu Tag.
Dies mag zwar wie ein Nebenkriegsschauplatz erscheinen, doch Bots haben immense negative Auswirkungen auf das Wirtschaftsgefüge des Spiels.
Ihre Entfernung dient der Förderung der Spielbalance und ist daher von nicht zu unterschätzender Bedeutung.
Weitere nennenswerte Errungenschaften beinhalten das Garderobensystem.
Unser früheres System war zwar in Ordnung, aber das Upgrade hat es – meiner Meinung nach – zum Besten der Branche gemacht.
Ihr könnt eure Kleidung nun mit einer Auswahl an 99 Farben färben. Die Gegenstände, die ihr sammelt, müsst ihr nicht mehr im Inventar aufbewahren, um sie zu benutzen,
und es gibt auch keinerlei Einschränkungen beim Ausrüsten von Rüstungen oder Waffen.
Außerdem haben wir dieses Jahr eine Premiere in RIFT gefeiert: Wir haben zum ersten Mal eine neue Klasse hinzugefügt.
Die Entwicklung des Primalisten war eine beeindruckende Leistung, aber die Klassendesigner können nicht sämtliche Lorbeeren einheimsen,
da das Systemdesignteam unzählige Iterationen überarbeitet und auf das Gameplay-Feedback von Spielern und Kollegen reagiert hat.
Sie haben unzählige Nächte und Wochenenden daran gearbeitet, die neue Berufung ins Leben zu rufen.
Zu guter Letzt gab es noch einige Änderungen am Meldesystem.
Vor einigen Monaten haben wir dieses System im Stillen verbessert. Wenn ihr früher jemanden gemeldet habt, wurde diese Person eurer Ignorieren-Liste hinzugefügt.
Nun wird die Person beim Ignorieren mit einer virtuellen “schwarzen Markierung” belegt, die serverübergreifend für den entsprechenden Account gilt.
Das Wechseln des Charakters oder des Servers entfernt die Markierung also nicht.
Wenn ein Spieler eine bestimmte Anzahl an schwarzen Markierungen erhält, wird dies dem Support gemeldet, der den Fall dann untersucht und notwendige Maßnahmen ergreifen kann.
Wird der Spieler weiterhin gemeldet, wird er vom System stummgeschaltet und muss warten, bis ein Support-Mitarbeiter sich darum kümmert.
Bevor wir nun zu den technischen Prozessen kommen, möchte ich einen Begriff erklären, den ich verwenden werde: “technische Schuld” bzw. “technische Schulden”.
Dieser Begriff umfasst nicht nur Bugs sondern auch alle anderen technischen Aspekte, die so verarbeitet wurden, dass ihre Wartung oder ihr weiterer Ausbau erschwert ist.
Wartung ist wichtig: Wenn man ein Programm entwickelt, ist das im Prinzip mit dem Bau eines Hauses vergleichbar … nur dass dieses Haus ständig umgebaut,
mit neuen Leitungen ausgestattet und erweitert werden muss. Es gehört leider zur Realität des Programmierens, dass man manchmal kein solides “Fundament” legen kann,
bevor man ein neues “Zimmer” baut. Und wenn das passiert, hat man technische Schulden, die weitere Arbeiten nach sich ziehen,
damit die Dinge in Zukunft wie ursprünglich vorgesehen funktionieren.
Jede technische Abteilung hat bestimmte Methoden, um Inhalte, Bugs und die Kommunikation zwischen verschiedenen Disziplinen anzugehen.
Im Lauf des letzten Jahres haben wir für den Kampf gegen technische Schulden aufgerüstet.
Dies war uns immer ein wichtiges Anliegen, aber um weitere Fortschritte zu erzielen, formalisieren wir unsere Prozesse.
Wenn wir beispielsweise an Inhalten arbeiten, konzentrieren wir uns in den folgenden zwei Wochen auf den Bereich “technische Schuld”.
Der Vorteil dabei ist, dass wir Dinge auf diese Weise in festgelegten Zeitabschnitten zielgerichtet verbessern können.
Es wurde in verschiedenen Studien belegt, dass Menschen – insbesondere Software-Techniker – darunter leiden, wenn sie mitten in ihren laufenden Aufgaben unterbrochen werden,
um sich etwas anderem zuwenden zu müssen. Durch die Einführung festgelegter Arbeitsblöcke erlauben wir ihnen,
sich besser auf die Probleme zu konzentrieren und künftig noch effektiver zu arbeiten.
Doch nun zum spannendsten kommenden Feature: echte Multicore-Unterstützung!
Das ist eine wirklich großartige Nachricht, die über ein Jahr unter Verschluss gehalten wurde!
Dies ist die größte Änderung, die wir überhaupt an RIFT durchführen können, denn sie betrifft das Rendering der gesamten Spiel-Engine.
Die einzige noch größere Änderung wäre, das Spiel von Grund auf neu zu programmieren.
Warum ist das so wichtig? RIFT läuft mit einer Grafik-API namens DirectX 9 (DX9).
Sie erlaubt dem RIFT Client, direkt mit der Grafikkarte eures Computers zu kommunizieren.
Das Problem ist, dass die in die Jahre gekommene DX9 für Computer mit nur einem Prozessorkern entwickelt wurde und die CPU ziemlich stark belastet.
Die Technologie hat sich enorm weiterentwickelt und Multicore-Computer (Computer mit mehreren Prozessorkernen) sind heute die Norm.
RIFT wird bald echte Multicore-Unterstützung bieten, was sich auf eurem Computer mit besseren Framerates und Reaktionszeiten auswirken wird und sicherstellt,
dass eure CPU-Geschwindigkeit kein Grafikkarten-Throttling verursacht.
“Hey, Snedhepl – Ich versteh kein Wort von dem ganzen technischen Kauderwelsch. Kannst du das nicht in normalem Deutsch erklären?!”
Stellt euch vor, ihr entwerft ein Fahrzeug, um Leute von CPUhausen nach Grafikkartenweiler zu fahren. Diese Leute sind die Rendering-Anweisungen.
Um sie nach Grafikkartenweiler zu bringen, würdet ihr vermutlich einen Bus bauen, weil er das effizienteste Fahrzeug wäre,
um so viele Menschen von einem Ort an einen anderen zu transportieren.
Viele Jahre später wird die Straße von CPUhausen nach Grafikkartenweiler aber zu einer vierspurigen Autobahn ausgebaut.
Ist ein Bus dann immer noch die beste Wahl? Nun, es dauert ziemlich lange, einen Bus mit Leuten zu füllen.
Auch das Beschleunigen und Spurwechsel nehmen Zeit in Anspruch. Also nehmen wir stattdessen mehrere Autos.
Aber auch diese Lösung ist nicht perfekt – schließlich müssen all die Leute bei der Ankunft dieselbe Ausfahrt nehmen,
wobei es vielleicht sogar zu einem größeren Crash kommt! (Ja, das Wortspiel musste jetzt einfach sein. )
Da wir nun aber mehrere Spuren und Ausfahrten haben, sind Autos natürlich eine viel bessere Lösung.
Sie werden schnell voll und sind auch sonst viel flotter unterwegs. Und genau diesen Effekt hat die Multicore-Unterstützung bei RIFT.
Die Multicore-Unterstützung befindet sich derzeit im geschlossenen Alphatest und wir hoffen, diese Änderung in naher Zukunft in einer offenen Beta testen zu können.
Wir sind total aus dem Häuschen, weil wir nun endlich offen über die Leistungsverbesserung sprechen können, an der wir seit über eineinhalb Jahren gearbeitet haben!
Wir können es kaum erwarten, euer Feedback dazu zu hören!