Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

10.05.2020, 14:15

Wie handled ihr verschiedene Aspect Ratios und Resolutions in 2d games

Topic say all in schönem denglish ;)
Es gibt in der Spieleentwicklung ein paar Nüsse zu knacken und ich habe mich dazu schon etwas belesen.
Natürlich kann man Letterbox akzeptieren und sich mit den schwarzen Balken anfreunden oder diese sogar grafisch mittels Übergang einbinden.

Ich habe mir bezüglich der automatischen skalierung Gedanken gemacht und mir überlegt mich an der Höhe des Displays zu orientieren.
Man hat also ein Seitenverhältnis des Displays und skaliert die Höhe der Gameauflösung(zu diesem Zweck muss man sich genau Gedanken machen in welcher Größe man das Spiel im Original entwickelt, denn ein skalieren von 720 auf 1080 z.b. würde den Faktor 1.5 bedeuten und dies wäre bei Pixelart eine Katastrophe)
Anschliessend muss man dann lediglich in Abhängigkeit der Ratio die Breite des Screens füllen.
Somit wäre dann entweder mehr vom jeweilgen Level zu sehen oder man muss den Bereich sinnvoll füllen.

Mich würde interessieren welche Lösungen ihr nutzt oder ob ihr schlicht die schwarzen Balken akzeptiert?
Natürlich vorausgesetzt jemand anderes als ihr bekommt das Spiel zum spielen ;)

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

2

10.05.2020, 23:07

Ich habe skaliert. Ich skaliere eh manchmal für Dialoge oder besondere Spielemomente. Und ich habe einen Grafikstil verfolgt, der keine pixelperfekte Retro-Optik anpeilt. Das sind bequeme Voraussetzungen.

Was ich außerdem eingebaut habe:

a) Einen Shader, der im FragmentShader die Texturkoordinaten auf "das Innere" des jeweiligen Grafikrechtecks beschränkt, so dass der Texturfilter keine Fehlfarben von außerhalb der Grafik reinzieht.
b) eine pixelperfekte Darstellung, die erstmal versucht, Grafiken in Originalgröße zu zeichnen
c) eine minimale Auflösung, unterhalb der dann doch gezoomt wird, weil es echt noch Leute gibt, die auf 1024x768 zocken und die dann quasi gar nix mehr vom Level gesehen haben
d) eine maximale Auflösung, weil's immer mehr Leute mit 4k-Display gibt, und die kriegen dann soviel vom Level zu sehen, dass das Balancing versagte.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

Jonathan

Community-Fossil

  • Private Nachricht senden

3

11.05.2020, 23:32

Meine Strategie für ein 2D Interface über einem 3D Spiel ist folgende:

- Alle Elemente bestehen aus Sprites die beliebig skaliert werden können. Es wird normalerweise eine 1zu1 Größe benutzt, aber wer schonmal ein Strategiespiel auf 4k gespielt hat weiß, wie bescheuert es ist, wenn alle Elemente winzig klein sein. Deswegen kann man das skalieren, und der Benutzer kann diesen Faktor beliebig einstellen, kostet ja nix.

- Alle Elemente sind an Ecken / Seitenrändern ausgerichtet. Erhöht sich die Auflösung ohne das die Sprites skaliert werden, wandert damit alles einfach weiter voneinander weg. Damit umgehe ich das Problem, dass sich Bedienelemente dem vorhandenen Platz anpassen müssen (so wie man es von normalen Desktopanwendungen eben kennt), alles ist einfach immer gleich groß. Das ist natürlich aus Benutzersicht nicht optimal, lässt sich aber schön einfach programmieren.

Diese Strategie ist ein wenig minimalistisch gedacht, in etwa gemäß der 80:20 Regel: 80 Prozent des Nutzens mit 20 Prozent des Aufwands. Gerade im Hobbybereich hat man ja nicht unendlich Zeit alles zu polishen, aber unterschiedliche Auflösungen rudimentär zu unterstützen ist halt immer noch 10 mal geiler als nur eine feste Auflösung zuzulassen.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige