DUST 514: Die Erweiterung des Universums

6 0

Es gibt einen neuen interessanten Post von den Entwicklern von DUST 514.

devblog_starmap

Ich bin Lin, Server-Architekt für DUST 514 bei CCP. In diesem Entwicklerblog möchte ich auf fortgeschrittenem Niveau einige der technischen Online-Aspekte von DUST 514 behandeln, einschließlich der Herausforderungen, denen wir uns stellen mussten, und die von uns gewählten Lösungsansätze.

Als Server-Architekt dieses Projekts bin ich sowohl für die Integration der Multiplayer-Kämpfe des Ego-Shooters DUST in das EVE-Universum als auch für die Leistungsoptimierung der DUST-Kampfserver verantwortlich. Im Gegensatz zu gewöhnlichen Multiplayer-Ego-Shootern weist DUST 514 zahlreiche MMO-Elemente auf. Und im Gegensatz zu gewöhnlichen Ego-Shooter-MMOs bietet DUST eine umfangreiche Interaktion mit einem der erfolgreichsten Weltraum-MMOs – EVE Online! Dies stellt uns vor große Herausforderungen in Bezug auf die Auswahl der geeigneten Technologien, die zum einen dieses hohe Interaktionsniveau mit EVE gewährleisten und zum anderen das Ego-Shooter-Gameplay möglichst reibungslos gestalten.

DUST 514 Interview: Changing Console Shooters Forever

Es ist weithin bekannt, dass EVE Stackless Python verwendet, einen Dialekt der Programmiersprache Python, der kooperatives Multi-Threading auf der Sprachebene ermöglicht. Die Technologie-Suite von CCP nutzt Stackless Python in großem Umfang und verfügt über fertig nutzbare Online-Technologien, die DUST für eine reibungslose Interaktion mit dem übrigen EVE-Universum verwenden kann und muss.

Während das Multiplayer-Ego-Shooter-Gameplay von DUST weiterhin auf die Unreal Engine 3 angewiesen ist, soll die Interaktion mit dem übrigen EVE-Universum die Vorteile bestehender Online-Technologien von EVE nutzen. Insbesondere soll ein DUST-Client im EVE-Universum einfach als spezielle Art von EVE-Client erscheinen. Der EVE-Servercluster soll die DUST-Clients für eine gute Lastverteilung von Netzwerkbandbreite und Simulationsleistung auch auf ähnliche Weise wie die normalen EVE-Clients behandeln. Der EVE-Cluster muss nur eine Reihe serverseitiger Dienste in Verbindung mit DUST aktivieren, und schon wird sich problemlos um die neue Generation von DUST-Clients gekümmert werden. Die vollständig Python-basierten Technologien des EVE-Clients können jedoch nicht einfach auf das PlayStation 3-System, das über beschränktere Ressourcen verfügt, angewendet werden. Wir mussten für PS3 leichte Client-Netzwerk-Technologien implementieren, die den bestehenden Kommunikationstechnologien von EVE möglichst ähnlich, aber dabei Speicher- und CPU-freundlicher sind.
Ein weiterer Aspekt der Interaktion zwischen DUST und EVE entsteht aus der Interaktion zwischen den DUST-Kampfservern und dem EVE-Universum. Stellt euch vor, wie ein vereinfachter Ablauf für den Beginn eines Kampfes in DUST aussehen könnte:

DUST 514 Interview: Changing Console Shooters Forever

Ein EVE-Unternehmen stellt einen Kampfvertrag aus, um ein Gebiet auf einem bestimmten Planeten einzunehmen, das sich zurzeit im Besitz eines anderen Unternehmens befindet. Eine Gruppe DUST-Söldner nimmt gegen die in Aussicht gestellte Prämie den Vertrag als Angreifer an, und eine andere Gruppe DUST-Söldner nimmt den Vertrag als Verteidiger an, um ebenfalls gegen eine Prämie das Gebiet zu schützen. Wenn die vorher festgelegte Mindestspielerzahl in jedem Team erreicht ist, weist die EVE-Server-Logik den entsprechenden DUST-Kampfcluster an, einen Kampf zu spawnen. Der Kampfserver erhält so beim Start alle erforderlichen Informationen zum Kampf, und die DUST-Söldner-Clients werden weitergeleitet, um dem Kampf beizutreten. Nach dem Kampf, wenn jeder seinen Gewinnanteil erhalten (oder verloren) hat, wird der Kampfserver-Prozess vom EVE-Universum beendet.

Das EVE-Universum muss also die DUST-Kampfserver ab ihrer Aktivierung verwalten und bei Bedarf mit ihnen kommunizieren. Zudem müssen wir das latenzanfällige Multiplayer-Ego-Shooter-Gameplay für alle teilnehmenden DUST-Spieler möglichst fair gestalten. Ich werde die Diskussion zur Lösung der damit verbundenen technischen Herausforderungen nicht weiter vertiefen, denn wir erkunden noch alle Möglichkeiten, um die beste Balance für die Implementierung der physischen DUST-Kämpfe in das EVE-Universum zu gewährleisten!

devblog_clustering

Im Gegensatz zu traditionellen Multiplayer-Ego-Shooter-Servern werden wir DUST-Kampfserver in aller Welt hosten. Da die zentralisierten Server-Hardware-Ressourcen ziemlich begrenzt sind, müssen wir Wege zur effizienten Nutzung der bestehenden Server-Ressourcen finden. Anstatt einen bestimmten Server nur einen Kampf hosten zu lassen, soll ein Multi-Core-Server so viele DUST-Kampfserver wie möglich hosten!

Wir haben bedeutende Optimierungen an der Ego-Shooter-Engine vorgenommen, die wir auf Server- und Client-Seite verwenden, und jeder DUST-Kampfserver hostet jetzt simultan eine zufriedenstellende Anzahl DUST-Spieler. Damit jedoch mehrere Kampfserver auf demselben Multi-Core-Server nebeneinander bestehen können, müssen wir mögliche prozessübergreifende CPU- und Speicher-Konflikte minimieren. Auch hier werde ich nicht zu sehr ins Detail gehen, wie wir das gelöst haben, aber ich kann euch versichern, dass die DUST-Kämpfe skalierbar sein werden.

Natürlich optimieren wir DUST 514 weiterhin in jeder Hinsicht, um allen zukünftigen DUST-Spielern ein einzigartiges Spielerlebnis zu bieten!

Kommentare sind geschlossen.

6 Kommentare


    Loading More Comments

    Bitte gib dein Geburtsdatum ein.

    Date of birth fields