Auflösungsunabhängigkeit
Geschrieben von ThiemoMan sollte meinen, dass sich die Frage nach der Bildschirmauflösung heutzutage nicht mehr stellen sollte. Aber das Gegenteil ist der Fall.
Früher, in den guten alten DOS-Zeiten, da war die Sache ziemlich einfach: Entweder man verließ sich auf den VGA-Standard und begnügte sich mit einer 320 × 200 Pixel kleinen Zeichenfläche (das waren übrigens nicht einmal 0,1 Megapixel). Oder man schlug sich mit VESA und duzenden inkompatiblen Super-VGA-Absonderlichkeiten herum (immerhin 0,3 Megapixel aufwärts).
Heute dürfen Bildschirme praktisch beliebige Auflösungen nutzen. Von Smart-Phones mit schlimmstenfalls auf Hochkant gedrehten 480 × 640 Pixeln über Sub-Notebooks und Breitbild-TFTs bis zu als PC-Monitor nutzbaren HD-Flachbildfernsehern. Für den Programmierer – nicht nur von Spielen – stellen sich da ganz neue Fragen.
Eine zwar nur eingeschränkt allgemeingültige aber immerhin tagesaktuelle Statistik (ermittelt anhand der Besucher der Website autopattern.maettig.com) zeigt das folgende Bild. Die Flächen der Kugeln geben die Häufigkeit wieder, X- und Y-Achse die Breite und Höhe der Screen Resolution.
Von welchem Seitenverhältnis kann man ausgehen? Gilt 4:3 noch?
Kurze Antwort: Jein. Vier-zu-drei-Auflösungen wie das jahrelang weit verbreitete 1024 × 768 gibt es zwar noch, aber sie sterben aus. Wer jetzt denkt, die neue Ultima Ratio würde 16:9 lauten, der irrt. In meiner Statistik spielt dieses von Breitbildfernsehern so bekannte Format mit kaum 2 % praktisch keine Rolle. Der Spitzenreiter mit fast 50 % heißt merkwürdigerweise 16:10 (wohl aus technischen Gründen), gefolgt von 5:4 und 4:3 mit jeweils rund 23 % Häufigkeit.
In der Praxis heißt das, dass man mit allem rechnen muss – schlimmstenfalls mit einem um 90° gedrehten Bild. Ideal wären heutzutage also Grafiksysteme, die sich von selbst jedes beliebige Seitenverhältnis anpassen können, ohne dass es Verzerrungen gibt. Nur von einer einzigen Annahme würde ich ausgehen: dass ein Pixel genau quadratisch ist. Das war beim berühmten 320 × 200 nämlich nicht so (da hatte ein Pixel ein Seitenverhältnis von 1 zu 1,2).
Von welcher Auflösung kann man als Untergrenze ausgehen? 800 Pixel?
Kurze Antwort: Wahrscheinlich von gar keiner.
Unter Webdesignern entbrennen bis heute immer wieder Streits, ob man die vor Jahren selbst auferlegte Begrenzung von 800 Pixeln nicht langsam mal auf 1024 anheben könnte. Meine Statistik zeigt, dass Bildschirmbreiten unter 1024 Pixeln zwar kaum noch auftauchen (weniger als 1 %), aber es gibt sie immer noch. Warum? Ganz einfach: weil es möglich ist. Ein tatsächlicher Anwendungsfall sind beispielsweise Sub-Notebooks. Auch ältere oder sehbehinderte Menschen reduzieren gern die Auflösung. Erst Windows Vista schafft Möglichkeiten, mit denen das hoffentlich der Vergangenheit angehören wird.
Immerhin stellt wenigstens die Grafikkarte kein Hinderniss mehr dar. Microsoft hat die Untergrenze mit Windows XP und Vista auf 800 Pixel hochgeschraubt. Man sollte sogar davon ausgehen können, dass heutzutage 99,9 % der Grafikkarten 1024 × 768 Pixel unterstützen und 99,9 % der Bildschirme diese Auflösung „irgendwie“ darstellen können – zur Not verzerrt. Aber eben wegen diesen Verzerrungen und dem daraus resultierenden „Pixelbrei“ sollte man schlicht von nichts ausgehen sondern flexibel bleiben. Die Flexibilität, die wir mit dem Vormarsch der LCD-Monitore verloren haben, muss jetzt unsere Software bieten.
Wie macht es Glow?
Alle Grafiken in Glow sind für eine Basisauflösung von 1024 × 768 Pixel entwickelt und werden durch die Algorithmen der Grafikkarte (per DirectX oder OpenGL) auf jede beliebige, vom Spieler einstellbare Auflösung umgemünzt. Das ist sicher keine perfekte Lösung. Vor allem wird das Bild immer auffälliger verzerrt, je breitformatiger der Bildschirm ist. Aber es funktioniert und ist bequem, da man nur für eine einzige Auflösung entwickeln muss und sich darauf verlassen kann, dass sie überall funktioniert. Vor allem wird so der Pixelbrei vermieden, den LCD/TFT-Bildschirme beim Hochrechnen auf ihre native Auflösung unter Umständen erzeugen.

27. Juni 2008 um 17:55
Für Spiele unterscheide ich zwischen 2D und 3D und bei 2D zwischen absolut Retro (zum Beispiel Virus) oder eher High-End-Retro (Glow, Sorades). Bei reinen Retro-Spielen kann man ruhig auch 640*480 mit automatischer Skalierung nehmen, wenn man es böse mit dem Spieler meint nimmt man 320*200. Spiele wie Glow und Sorades müssen auf 1024*768 aufwärts optimiert sein. Bei 3D spielt es keine so entscheidende Rolle, aber als zu prüfende Auflösung sehe ich hier 1280*1024, 1600*1200 so wie 1920*1200 an.
Würde ich heute ein 3D-Spiel entwickeln, welches erst in ein paar Jahren erscheint, würde ich es rein auf HD-Auflösung trimmen.
01. Juli 2008 um 19:37
Wobei du auch da beachten musst, dass du auf Computermonitoren kaum das klassische 16:9-Seitenverhältnis (1920 * 1080 Pixeln) sondern eher 16:10 antreffen wirst (1920 * 1200 Pixel). Und ich fürchte auch, dass nach oben noch lange keine Grenze erreicht ist. Ein 300-dpi-Bildschirm wäre 4096 Pixel breit oder noch mehr.
10. Juli 2008 um 14:41
1280×800 (WXGA) ist seit Jahren die de-facto Auflösung für Notebooks, die ja auch insgesamt, bzgl. des Verkaufsvolumen, immer mehr an Bedeutung zunehmen. Ich z.B. kann mir schwer vorstellen noch einmal einen Desktop-Rechner anzuschaffen. Die einzige Ausnahme: Als Mini-Renderfarm für Film-Rendering. Auf 4:3 würde ich heute daher nicht mehr entwickeln. Wer immer noch einen 4:3 Monitor hat, bekommt halt schwarze Balken, fertig, das ist er ja schon vom Fernsehen her gewohnt.