Bis jetzt habe ich gesehen, dass viele Spiele immer noch in 32-Bit-Architektur kompiliert sind, obwohl fast 50% der aktuellen Windows-Benutzer ein 64-Bit-Betriebssystem verwenden. Warum ist das?
Wenn der Grund dafür ist, dass ein größeres Publikum erreicht wird (da 32-Bit-Apps auf 64 ausgeführt werden können), warum nicht zwei Versionen davon erstellen, da es mehr oder weniger um Neukompilierung geht und das Ausführen von 64-Bit-Apps aufgrund von mehr Leistungsvorteilen bringen kann verfügbare CPU-Register und andere Funktionen.
Antworten:
In diesem MSDN-Blog wird erläutert, warum es keine 64-Bit-Visual Studio-Version gibt, und viele der Probleme behandelt, die auch Spiele betreffen. Das Wesentliche dabei ist, dass die Verwendung von 64 Bit in vielen Fällen die Leistung beeinträchtigen kann, da dies Auswirkungen auf den Cache des Prozessors hat (mehr Daten mit 64 Bit, aber Cache gleicher Größe).
Der zusätzliche adressierbare Speicher könnte helfen, aber nur wenige Consumer-Computer verfügen ohnehin über mehr als 4 GB Speicher. Fügen Sie dies zu dem Problem hinzu, zwei Binärdateien für Windows zu verteilen, und es ist leicht zu entscheiden, dass die Zeit für 64-Bit-Spiele (noch) nicht richtig ist.
quelle
Bei meinem vorherigen Job haben wir unsere gesamte Engine (MMO) auf 64-Bit portiert und im Rahmen der Entwicklungspipeline an einigen Stellen einen 64-Bit-Client ausgeführt, um Daten vorzuverarbeiten. Wir würden jedoch niemals einen 64-Bit-Client an Endbenutzer liefern.
Erstens ist die Leistungsverbesserung sehr gering, und die meisten PC-Spiele sind in jedem Fall auf die GPU beschränkt.
Zweitens haben nur sehr wenige Endbenutzer genug RAM, um die Vorteile einer ausführbaren 64-Bit-Datei zu nutzen, und jede Engine, die auch nur vage für Konsolen ausgelegt ist (maximal 512 MB), wird nicht für großen verfügbaren Speicher optimiert.
Schließlich ist es ein Riesenschmerz, 2 ausführbare Dateien in Ihrer Distributionspipeline zu haben. Sie können nicht nur eine ausführbare 64-Bit-Datei ausliefern, da 30% Ihrer Zielgruppe sie nicht ausführen können. Sie müssen also sowohl eine 64-Bit- als auch eine 32-Bit-ausführbare Datei sowie eine Art Wrapper ausliefern, auf dem die richtige ausgeführt wird. Wenn Sie ein Online-Spiel sind, bedeutet dies eine zusätzliche Multi-Megabyte-Datei, die bei jeder Codeänderung gepatcht werden muss, und zusätzliche Komplexität, um sicherzustellen, dass die richtige Version den richtigen Spieler erreicht. Es ist einfach nicht die Mühe wert für die kleinen Vorteile.
quelle
Wenn es nur um Neukompilierung ginge, hätten wir eine 64-Bit-Version aller Spiele.
Leider ist es nicht so einfach, besonders bei Game Engines mit einer älteren Codebasis.
Das Portieren auf 64 Bit würde in diesem Fall viel Aufwand erfordern. Einfach gesagt, die Vorteile für den Moment reichten nicht aus, um dies wert zu sein.
quelle