Ich weiß bereits, dass viele Computer heute eine GPU haben, die DirectX und OpenGL unterstützt. Aber was ist mit Computern, die das nicht tun? Kann ich ein einfaches 2D-Spiel schreiben, das nicht auf der GPU basiert, sodass es auch auf älteren Computern funktioniert?
Gibt es eine plattformübergreifende C- oder C ++ - Spielbibliothek, mit der ich dies tun kann? Im Idealfall kann ich mit einer solchen Bibliothek die Hardwarebeschleunigung mit sehr wenigen Codezeilen umschalten.
c++
2d
c
cross-platform
hardware-acceleration
user999687
quelle
quelle
Antworten:
Natürlich können Sie SDL verwenden, und ich glaube, es macht standardmäßig alles auf der CPU. Sie können tatsächlich eine ziemlich gute Leistung erzielen, wenn Sie Ihren Code gut verwalten.
quelle
Glaubst du, Pong hat eine GPU benutzt?
Glauben Sie, dass die Flash-Spiele, die Sie ständig im Internet spielen, eine GPU verwenden?
(Erst in den letzten Wochen können Flash-Spiele endlich für die GPU-Unterstützung entwickelt werden. Und Flash gibt es schon seit mehr als einem Jahrzehnt.)
Natürlich ist es möglich. Ich hatte ein Jahrzehnt lang Spiele gespielt, bevor es überhaupt eine beschleunigte Grafikkarte für den Verbrauchermarkt gab, geschweige denn ganze Turing-Komplettprozessoren für Grafiken (und insbesondere für Spielegrafiken).
quelle
Vergessen Sie nicht, dass Videospiele der ersten Generation für ein Oszilloskop geschrieben wurden! Und mit Videospielen der ersten Generation meine ich Pong. Eine GPU ist ein Mathematikprozessor, was auch eine CPU ist. Es ist nur spezialisierter.
quelle
Es ist absolut möglich: Die ersten Computerspiele gab es vor GPUs - wie Sie hervorheben, handelt es sich um Hardware, die zur Beschleunigung der 3D-Mathematik entwickelt wurde. Alles, was auf der GPU ausgeführt wird, kann auch auf der CPU ausgeführt werden, allerdings normalerweise mit einer langsameren Gesamtgeschwindigkeit. (In der ersten Version von Quake wurde beispielsweise nur Software-Rendering verwendet [1] )
Mesa3D ist eine OpenGL-Implementierung, die behauptet, das Rendern von Vollsoftware zu unterstützen. (Ich habe es jedoch nur als Referenzimplementierung verwendet).
quelle
Wenn es sich nur um 2D-Spiele handelt, empfehlen wir Ihnen, entweder
flash 10
oder zu verwendenSDL
. Wenn Sie jedoch der Meinung sind, dass Ihr Spiel 3D-Elemente und Rendering enthält, können Sie diese auch verwenden Irrlicht verwenden . Grundsätzlich handelt es sich um eine plattformübergreifende Open-Source-3D-Engine mit Unterstützung für Hardware- und Software-Rendering:aus dem Wiki:
quelle
Während das, was Sie fragen, möglich ist, ist es erwähnenswert, dass es normalerweise praktisch keinen Vorteil hat, die 3D-Beschleunigung zu verwerfen. Alle modernen PCs verfügen über eine integrierte 3D-Beschleunigung. Die wenigen alten Maschinen ohne diese Funktion stellen einen extrem kleinen Spielemarkt dar, und Sie hätten wahrscheinlich auch andere Kompatibilitätsprobleme mit diesen.
Ich befürchte, dass Sie diese Frage aus dem falschen Grund stellen.
quelle