Frage zu Auflösung bei 2D Spielen

  • GM 7

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Frage zu Auflösung bei 2D Spielen

    Guten Tag,

    hab mir letztens ein paar Gedanken gemacht und bin auf ein Problem gestoßen, welches sicher einige von Euch kennen:
    Wenn man z.B. einen View mit der Größe 1024x768 im Room hat, der 1:1 die Pixel im Fenstermodus darstellt, und das Ganze dann im Fullscreen anzeigen lässt,
    hat man ein unscharfes, verzogenes Bild.
    Natürlich könnte ich nun den View so einstellen, dass er zur nativen Auflösung meines Bildschirmes passt: 1920x1080.
    Aber dann würde das Spiel auf anderen Bildschirmen mit anderer Auflösung wiederum nicht schön aussehen.

    Welche Lösungsansätze gibt es dafür?
    Hab mir ein paar ausgedacht, die aber sehr umständlich, und oft nicht sehr sinnvoll sind:

    1.) Man lässt den Spieler die Auflösung einstellen, sodass dann der View im Room angepasst wird.
    Nachteil: Man würde mehr (bzw. weniger) im Raum sehen, was die Athmosphäre zerstören könnte, oder dem Spieler Vorteile geben könnte.
    Beispiel: Age of Empires I, auf niedrigster Auflösung sieht man nur ein Haus, auf maximaler die ganze Stadt.

    2.) Die native Auflösung des Bildschirms umstellen. Sprich: Fullscreen, und den 1920er Monitor auf 1024 runterhauen.
    Sieht zwar besser aus als einfach nur Vollbild, aber auch unschön.

    3.) Das gesamte Spiel mit einer Auflösung von 1920x1080 entwickeln, und dann einfach "runterskalieren".
    Nachteil: Hab ich noch nicht ausprobiert, aber ich gehe davon aus, dass Pixel "verloren" gehen werden.

    4.) Skalierbare Vektorgrafiken: Nein Danke

    Nun meine Frage: Wie lösen professionelle Studios das Ganze?
    Jedes 2D Game, dass ich bereits gespielt habe (bis auf wenige Ausnahmen) sahen auf absolut jedem Bildschirm perfekt aus, ohne Pixelverlust oder Unschärfe.

    Freue mich auf Antworten! :)

    edit: Fenstermodus will ich auch nicht, sollte aber klar sein, wer spielt schon im Fenstermodus? (Außer EVE Online)
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von levarris07 ()

  • Ich habe/hatte bei meinen Projekten genau das gleiche Problem.^^
    Eine "professionelle" Antwort darauf kann ich dir leider nicht geben, nur mal ein paar Vorschläge.

    Ich habe mich letztlich dafür entschieden eine 16:9 Auflösung zu nehmen,
    hatte zwar mit dem Gedanken gespielt das Spiel für Full-HD zu optimieren,nur ist dann der Nachteil, dass die Grafiken
    riesig sein müssen ... mein Kompromiss war dann 1280x720.
    Nachdem die meisten neuen Monitore heutzutage ja das Bildschirmverhältnis 16:9 besitzen war das dann einfach meine
    Mehrheitslösung.
    Leider wird da natürlich auch tüchtig gestreckt und interpoliert, da die Pixel nicht x 2 genommen werden können,
    aber in GM-Studio merkt man von der Interpolation deutlich weniger als noch in GM8.

    Neu in Studio (ab 1.3) ist jetzt auch, dass das Draw-Gui-Event sich an der Auflösung des Monitors orientiert,
    zumindest nach meinen bisherigen Tests scheint das so zu sein, das erleichert manches sicher.

    Was ich dir noch vorschlage ist,
    wenn du dich mal auf ein bestimmtes Bildschirmverhältnis festgelegt hast, dass sich dein Gui an die unterschiedlichen
    Monitore anpasst, also z.B. dass das Spiel an sich 1280x720 (16:9) ist und auf einem 1280x960 Monitor (4:3) das GUI
    sich unter dem Spielfenster befindet -> auf die Weise kann man zwar die Bildschirme nicht komplett ausnutzen,
    aber der Sichtbereich bleibt zumindest gleich und man kann sich dann mit dem Interface spielen,
    was sicher aber auch einiges an Arbeit bedeuten würde.
    Das waren nur mal ein paar Gedanken dazu ... würde mich auch interessieren wie das professionell gemacht wird.
    In 3D ist das ja leichter,weil da ja die Pixel weniger eine Rolle spielen als Primitives/Vektoren ...
  • Wenn du nicht auf Vektorgrafiken setzen willst und die view_größe konstant bleiben soll, bleiben im Grunde nur die beiden Möglichkeiten eine niedrige Auflösung hochzuskalieren oder eine hohe Auflösung runterzuskalieren.
    Beim hoch skalieren wird das Bild abhängig von der Einstellung im GM, der GPU und dem Monitor entweder unscharf oder pixelig.
    Beim runter skalieren gehen nur Informationen verloren, wenn man auf Interpolation verzichtet. Ist diese eingeschaltet gehen die Informationen nicht verloren, sondern werden bei der berechnung der einzelnen Pixel miteinbezogen. Es entspricht quasi einem Vollbild-AA (FSAA/SSAA), ist aber auch rechenaufwendiger, als eine niedrige Auflösung hoch zu skalieren.

    Denke professionelle Studios benutzen bei 2D-Spielen mit Rastergrafiken bei Retrolook-Spielen eine niedrige Auflösung, welche ohne Interpolation hochskaliert wird und bei hochauflösenden 2D-Spielen tatsächlich eine hohe interne Auflösung, welche runterskaliert wird. Im 2D-Bereich sollten selbst low-end GPUs genug rechenpower dafür haben. Eine weitere Alternative ist es alle Grafiken in verschiedenen Größen vorrätig zu haben und je nach gewählter Auflösung die nächst größere Grafik zu nehmen.