Warum ist es schwierig, Spiele von Konsolen auf den PC zu portieren? [geschlossen]


27

PC-Ports von Konsolenspielen erscheinen oft ein oder zwei Monate später. Warum ist das?

Spiele werden in Sprachen geschrieben, die auch auf PCs kompiliert werden können. Daher sollte die Spielelogik problemlos kompiliert werden können. Was hält sie damals noch zurück? Rendert es Code oder was?


3
Es ist wahrscheinlich auf das Veröffentlichen von Deals zurückzuführen. Sie werden zum Beispiel von Sony dafür bezahlt, dass sie einen exklusiven ps3 / ps4-Titel gemacht haben.
Aurus

Ich spreche von Spielen, die für einige Konsolen herauskommen. Sie sagen, dass der "Port" X Monate nach der Konsolenfreigabe herauskommen wird. Die Frage ist, warum sie warten. Ich meine, Marketing kann etwas zu tun haben, aber ich bin von Seiten des Programmierers interessiert.
Bloodcount

Aber Aurus hat recht, das ist die wahrscheinlichste Antwort. Das Portieren von Code von den Konsolen auf den PC ist aus mehreren Gründen nicht einfach. Die meisten Spiele, die kurz nach einer Konsolenveröffentlichung für den PC herauskommen, wurden in erster Linie für den PC entwickelt, oder zumindest die zugrunde liegende Technologie unterstützt einen einfachen Port. Andernfalls wären wahrscheinlich ein paar Monate nicht genug
Grimshaw

In Bezug auf Ihren Kommentar "Spiele sind in Sprachen geschrieben, die auf dem PC kompiliert werden", war dies nicht immer der Fall. Insbesondere möchte ich ein berühmtes Zitat ändern: "Konsolen und PCs sind zwar alle Computer, aber nicht alle Computer sind gleich".
Kurtzbot

Antworten:


47

Es gibt eine Reihe von Gründen, warum ein PC-Anschluss eine Weile dauern kann. (Ich entschuldige mich, wenn ich mich anscheinend irgendwo wiederhole; das ist sozusagen on the fly geschrieben.)

Steuerung und Gameplay anpassen

Wenn Sie auf einer Konsole spielen, schränkt dies allein Ihre Möglichkeiten ein, da der Benutzer lediglich ein Gamepad hat.

Das einfache Erstellen von 1: 1-Zuordnungen zwischen Tastaturtasten und Controllereingaben ist nicht immer eine gute Idee - wenn möglich - und manchmal dauert es länger, eine gute Lösung zu finden.

Hardware-Abstraktion / Fragmentierung

Wenn Sie beispielsweise für eine Wii U entwickeln, wissen Sie genau, wie sich eine Wii U verhält, da alle Wii Us identisch sind. Dies gilt nicht für PCs. Sie haben viele verschiedene Grafikkarten und CPUs und manchmal funktioniert etwas auf einigen von ihnen nicht. Das Aufdecken dieser Fehler erfordert eine Menge Tests, und das Beheben dieser Fehler nimmt auch Zeit in Anspruch.

Wenn Sie mit Ihrer Engine noch nie eine PC-Version erstellt haben, müssen Sie auch Ihre Hardwareabstraktion entsprechend codieren. Einige Spiele möchten mehrere DirectX-Versionen und OpenGL für Linux / Mac unterstützen, und all das braucht Zeit zum Schreiben, wenn es noch nicht geschehen ist.

Ressourcenkonflikt

Auf Konsolen muss das Spiel nicht mit einem Betriebssystem konkurrieren, um Ressourcen usw. - im Hintergrund läuft nicht viel.

Auf einem PC läuft das Betriebssystem, es gibt eine Vielzahl von Hintergrundprogrammen, und das alles bedeutet, dass Sie nicht den erhofften großen Anteil erhalten. Dies bedeutet, dass Sie manchmal zusätzliche Optimierungen durchführen müssen, insbesondere für Spieler auf Systemen der unteren Preisklasse

Assets verbessern

Mit einer Konsole haben Sie ein festes Ziel, sodass Sie Shader usw. schreiben, die diesem Ziel entsprechen.

Auf einem PC unterstützen einige Grafikkarten erweiterte Funktionen, und möglicherweise möchten Sie für diese einen besseren Shader verwenden. Das bedeutet, dass Sie diesen Shader schreiben müssen.

Plattformspezifisches Material

Konsolen-SDKs verfügen möglicherweise über eine Reihe praktischer Funktionen, die sich nicht leicht auf einen PC übertragen lassen. Sie bieten beispielsweise Zugriff auf Hardware-Timer oder eine gute Audio-API.

Diese Dinge sind normalerweise nicht auf PCs verfügbar. Sie müssen andere Wege beschreiten, um diese Dinge zu erreichen, und vielleicht ändert sich dadurch, wie Sie die Plattformunterschiede abstrahieren müssen.


4
Bezogen auf Bedienelemente, Benutzeroberfläche, sieht man dies immer noch sehr oft, wo das Menü auf einem PC-Desktop nicht einmal mit der Maus funktioniert, z. B. haben sie 1: 1-Mappings vom D-Pad zur Tastatur durchgeführt. Ein weiteres potenzielles Problem sind Shader-Sprachen und Treiberunterstützung.
Casper Beyer

1
Gute Antwort insgesamt. In Fällen, in denen Entwickler die maximale Leistung aus den Konsolen herausholen möchten, reicht eine niedrige Ebene plattformspezifischen Codes in der Regel nicht aus, und das Spiel selbst muss so entwickelt werden, dass die starken Eigenschaften der Hardware der Konsole genutzt werden. t auch für den PC unbedingt die ideale Lösung!
Grimshaw

6

Ein einfacher Grund ist, dass eine Konsole über einen einzigen Satz Hardware verfügt, der pro Konsole identisch ist.

Ihre XBox, PS3 und Wii haben alle die gleiche Hardware wie Ihre Nachbarn XBox, PS3 und Wii. Ihr Computer verfügt jedoch über eine andere CPU, eine andere Grafikkarte, einen anderen RAM-Speicher, die gesamte Konfiguration und die Einstellungen des Betriebssystems. Die installierten Treiber können alle eine völlig einzigartige Permutation sein, die keine andere Person auf der Welt hat.

Dies macht es schwierig, auf einen PC zu portieren. Sie müssen jede mögliche Hardware innerhalb Ihrer Mindestsystemanforderungen und darüber berücksichtigen. Das ist ein kniffliger und schwieriger Prozess zum Programmieren und Debuggen. Für Entwickler ist es sehr schwierig, jede zu programmierende Konfiguration zu kennen, und es ist nahezu unmöglich, Tests für diese Konfigurationen durchzuführen.

Sobald sie es für den PC entwickelt haben, führen die Entwickler umfangreiche interne Tests durch. Sie können sich jedoch auch auf Betatests von Anwendern für einen Zeitraum von mehreren Wochen bis zu einigen Monaten stützen. Dieses Auslagern von Tests mit Beta-Playern vor der offiziellen Veröffentlichung des Ports für den PC ist in der Regel der Grund dafür, dass die Veröffentlichungstermine zwischen Konsolen und PC unterschiedlich sind.


5

Das Portieren von Code auf eine neue Plattform benötigt Zeit. Das Erstellen eines Nanosekunden-Timers für Xbox 360 (das ich noch nie in XNA entwickelt habe) erfordert eine andere Implementierung als derselbe Nanosekunden-Timer unter Linux, Mac oder Windows. Stellen Sie sich vor, Sie haben Hunderte solcher Funktionen, die portiert werden müssen, Tausende, wenn der Motor massiv genug ist.

Das Hinzufügen dieser verschiedenen Implementierungen für die neuen Plattformen kann leicht ein bis zwei Monate dauern. Darüber hinaus können Sie auf Xbox 360 nicht immer dieselben Bibliotheken verwenden wie auf Windows, Playstation 3 oder einer anderen Plattform. Dies bedeutet, dass Sie möglicherweise eine völlig neue Bibliothek verwenden müssen, um dasselbe zu tun, was Sie auf der Xbox 360-Version getan haben.

Insgesamt summieren sich diese Dinge zu einer großen Menge an Zeit. Das Portieren auf eine neue Plattform ist für große AAA-Titel selten einfach.


3

Es hat fast nichts damit zu tun, in vielen Fällen hart zu sein.

Es ist einfach keine Priorität. Sie kurbeln an, um gerade noch rechtzeitig aus der Tür zu kommen. Jeder Minutenunterschied braucht Zeit, um berücksichtigt zu werden. Wenn Sie bis zu einem bestimmten Zeitpunkt einige Konsolen oder den PC freigeben können, tun Sie dies zuerst und schließen Sie dann die Ports ab. Vorzeitig loslassen, mehr Geld verdienen. Im Allgemeinen haben sich die Konsolen bei Box-Spielen der letzten Generation besser geschlagen, obwohl sie sich allmählich verschoben haben - die neuen Konsolen könnten das ändern.

In einigen Fällen bieten Konsolenhersteller auch Vorteile für exklusive Veröffentlichungen, sodass der Publisher einen Rabatt oder einen ähnlichen Preis erhält, wenn er diese zuerst auf einer bestimmten Konsole und später auf anderen Plattformen veröffentlicht. Nichts technisches.


1

Anfangs sind Spiele auf einer Konsole schwerer zu erstellen als auf einem PC. Darüber hinaus haben Konsolen sehr unterschiedliche Spezifikationen und unterschiedliche Hardware von Nintendo, Sony und Microsoft, was nicht nur zu einer unterschiedlichen Leistung führt, sondern auch zu unterschiedlichen Engpässen.

Normalerweise wird das Spiel nur die Engine optimieren, um die Qualität und Leistung auf jeder Konsole zu maximieren.

Bei der Anpassung an den PC treten andere Probleme auf. Konsolen sind homogen, dh alle Konsolen haben die gleiche Hardware (alle PS3 haben die gleiche Hardware-Leistung). Wenn Sie Ihr Spiel für den PC erstellen, legen Sie eine Mindestspezifikation fest, aber Sie ermöglichen dem Benutzer auch, die Qualität für leistungsstärkere PCs zu verbessern. Für PCs bestimmte Spiele sind weniger optimiert, für Programmierer jedoch einfacher zu erstellen.

Die Programmierung auf der Konsole hat einen Vorteil: Sie ermöglicht es Programmierern, die Leistung zu maximieren, sodass jedes Konsolenspiel immer eine gute Leistung erbringt.

Auf einem PC ist es schlimmer, weil es viele Hardware gibt, aber zugegebenermaßen ist es mehr Freiheit. Das bestaussehendste Spiel wird immer auf einem PC sein, da der PC immer auf dem neuesten Stand ist, und das zu einem Preis.

Das Portieren eines Spiels von der Konsole auf den PC kann schwierig sein, da die Konsole für die Leistung des Spiels ausgelegt ist, während dies auf dem PC nicht der Fall ist. Insgesamt ist es jedoch viel einfacher, ein Spiel von der Konsole auf den PC zu portieren, da die Konsole sehr viel weniger Arbeitsspeicher hat. so etwas wie 2 oder 4 mal weniger.

Das Ändern des Codes zur Anpassung an diese Speicherbeschränkung bedeutet meistens eine vollständige Neuprogrammierung.

Ich denke nicht, dass es schwierig ist, ein Spiel von der Konsole auf den PC zu portieren, es ist nur eine Frage der API. Unternehmen und Programmierer, die nur mit Konsolen arbeiten, haben Schwierigkeiten, auf den PC zu portieren, da sie nicht daran gewöhnt sind, sondern sich auch ständig an die Konsolen-API anpassen nicht unbedingt für PC apis sorgen.

Natürlich können Engines so programmiert werden, dass sie auf allen Konsolen und PCs ausgeführt werden. Sobald dies erledigt ist, ist es besser, als Ihren Programmierern zu sagen, dass sie die Engine auf einen PC portieren sollen, nachdem ihnen mitgeteilt wurde, dass dies nicht für drei oder vier Jahre geplant war.

TL; DR-Konsolen sind homogen und die letzte Konsolengeneration, der PC ist heterogen und Hardware und API werden ständig weiterentwickelt. Die Kosten verteilen sich auf die Programmierung und den Hardware-Aufbau, die Kompromisse darstellen.

Eine gute Sache wäre, zuzulassen, dass die gesamte Hardware ausgeführt wird. Die Konsolenpreise werden jedoch vergütet, da die Spielefirmen den Konsolenherstellern eine Lizenz zahlen. Daher sperren sie ihre Hardware, um nur Spielefirmen auszuführen, die bezahlen. Es ist unordentlich.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.