Geschrieben von iRat_ am 26.11.2006 um 12:40:
Funktionsweise von Spielen? Worauf kommt es an?
Hi,
ich hab mich mal mit der Frage ausseinander gesetzt wie ein PC spiel so funktioniert? Also ich nehme hier mal ganz speziell das Bsp. World of Warcraft. Weil ich damit auch in letzter Zeit meine Probleme hatte.
Also einmal läuft es auf einem iMac G5, 2,1 GHz; 512 DDR RAM; Readon X600 128 (<-- !!!) und anderer seit läuft es nicht auf einem PC: 1,11 GHz (AMD Athlon 1500+ XP), Windows Vista, 768 DDR RAM, und GeForce FX 5500 (auch mit 128 MB... )
Ich nehme mal an, dass es an der CPU liegt. Da für Vista allein bereits 2 GHz vorhanden sein sollten.
Aber ich frage hier nun warum das den so ist? Wenn man sich die Frage als Leie stellt würde sie doch wie folgt lauten "Aber warum läuft es denn nicht, ich hab doch die nötigen MHz und den nötigen Grafikspeicher?"
Wenn man ein Spiel startet. Läuft dann erstmal ein Datenstrom in die Grafikkarte oder? (Korriegiert mich bitte wenn ich mich irgendwo irre!). Diese wird von (Frage1) der CPU beschleunigt oder von sich selber (400MHz Karte)???
Die Grafikkarte zertsückelt die Infos in ihren RAMs und leitet sie weiter zur CPU. Diese bearbeitet die Dateien im Binärformat und schickt sie zurück (oder? - Frage2)
Ich will nicht unbedingt hilfe für mein Spieleproblem. Ich wüsste viel lieber wie ein Speil funktionier.
Danke
Mfg
iRat
Geschrieben von Kalka am 26.11.2006 um 13:25:
sowas kann an mehreren Parametern abhängen. Es gibt z.B. von ATI und NVIDIA assembler Erweiterungen (3D Now!, SSE2). Als Programmierer muss darauf geachtet werden, das es auf beiden Grafikkarten funktioniert, und auch ohne diese Erweiterungen muss das möglich sein.
Durch solche kleinere Spezifikationen denk ich kommt es dazu, dass es auf der einen GraKa nicht läuft, und auf der anderen schon. Das ist ein wirklich komplexes Thema, ich kann mir gut vorstellen das auch die Programmierer oft überfordert sind, warum das nicht funktioniert, wie es eigentlich soll.
Es könnten auch Fehler dabei auftreten, wenn das Spiel/Programm auf ein anderes OS übersetzt wird. Bei Windows z.B. werden Fenster, Knöpfe usw. mit der WinAPI gemacht. Diese Schnittstelle gibt es - wie es der Name schon sagt - nur für Windows. Bei Linux z.B. müssen die Funktionen quasi "ersetzt" werden. (andere Schnittstelle - andere Befehle).
Chao, Thomas
EDIT:
zu deiner ersten Frage:
Ja, die Daten werden über das entsprechende Programm bei Bedarf zur Grafikkarte geschickt (das passiert dann bei WoW ziemlich oft - siehe FramesPerSecons).
Jedoch werden diese Daten dann von der Grafikkarte bearbeitet. Bearbeitet heißt, Schattierung, Beleuchtung, Spiegelungen, Antialias und und und
Das hat den Vorteil, das sich jetzt die CPU mit anderen Dingen beschäftigen kann. In der Regel ist dabei z.B. die Kollisionserkennung sehr komplex und aufwendig - frisst also viel Zeit. Aber auch andere Dinge werden vom Programm selber berechnet. Die Eingabetasten werden verarbeitet und es wird berechnet, welche Teile der virtuellen Welt gezeichnet werden (alles was hinter dem Spieler ist, wird schonmal gar nicht gerendert - und das kann man dann noch weiter ausgrenzen -> siehe Frustrum Culling).
Frage 2:
nachdem die Daten verarbeitet wurden, werden sie an den Monitor gesendet. Das Programm bekommt kein Feedback von der Grafikkarte, was alles gezeichnet wurde - es muss davon ausgehen, dass die Grafikkarte alles so gezeichnet hat, wie das Programm es wollte. In der Regel ist das dann auch so
Ich hoffe das stimmt so
Chao, Thomas