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

17.01.2009, 00:05

Auflösungsunabhängige Grafiken

Hallo zusammen. Ich hab vor ein simples 2D Spiel zu schreiben, und stoße nun auf folgendes Problem: Wie erreiche ich es, dass mein Spiel bei jeder x-Beliebigen Auflösung möglichst gleich aussieht? Also ich hab mir überlegt meine Grafiken für eine möglichst hohe Auflösung (1920*1200) anzulegen und diese dann je nach Benutzerauflösung runter zu skalieren. Da dies ja eine Widescreen-Auflösung ist, würde bei 4:3 somit links und rechts was wegfallen, was jedoch in meinem Fall nicht so schlimm wäre. Jedoch weiss ich nicht ob dies die beste Methode ist. Hat da jemand großartig Erfahrung mit?

Gruß Felix

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

2

17.01.2009, 00:47

entweder deine grafiken in verschiedenen auflösungen erstellen und dann zur laufzeit die richtigen laden, oder deine grafiken mathematisch beschreiben. ( stichwort: vektorgrafiken )
wenn du generell eine 1920*1200 große textur für jedes bildchen erstellst, und online runterskalierst, wird dein spielchen höhere anforderungen haben als crysis.
"Don't trust your eyes: They are a hell of a lot smarter than you are"

3

17.01.2009, 09:16

Also die Grafiken in jeder möglcihen Auflöung zu erstellen wird sehr sehr viel. Von daher ist das zu zu aufwendig. Die Grafiken liegen zunächst im Vektorgrafikformat vor, jedoch kann das Framework/Engine diese nicht laden.
Mit den Anforderungen versteh ich nicht? Wieso sollten diese höher sein als bei Crysis? Die Grafiken haben ja nicht alle die Größe 1920*1200, sondern sind nur für diese Auflösung gemacht, also durchaus auch kleiner. Zudem werden nicht 100 Texturen gleichzeitig dargestellt.
Wie machen das denn die richtigen Entwickler, die müssen sich doch auch solchen Sachen anpassen...

4

17.01.2009, 09:27

Also ich gehe mal davon aus, dass du die Grafiken per 3D Beschleunigung zeichnest, dann ist das skalieren kein Problem. Natürlich hast du dann bei hohen Auflösungen nicht so viele Details, aber du könntest ja im Optionsmenü noch verschiedene Grafikeinstellungen angeben und dann die Sprites jeweils in unterschiedlichen Auflösungen gespeichert haben.
Oder du hast nur die großen Bilder und skalierst die beim Laden, was aber Rechenzeit kostet.
Seitenverhältnis ist da schon fast interessanter, jedenfalls wenn du nicht möchtest, dass das Bild verzerrt wird. Dann musst du dir überlegen, wie der Bildausschnitt angepasst wird (ob man mehr oder weniger sieht, oder einfach nur einen anderen Ausschnitt) und wie du das mit der GUI machst. Daher wäre es ganz praktisch in der GUI z.B. bereiche mit flexibler Größe zu haben (oder z.B. links einen Teil und rechts einen Teil und bei Widescreen rücken diese einfach weiter auseinander).
Lieber dumm fragen, als dumm bleiben!

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

5

17.01.2009, 09:40

Zitat von »"yoghurt"«

Also die Grafiken in jeder möglcihen Auflöung zu erstellen wird sehr sehr viel. Von daher ist das zu zu aufwendig. Die Grafiken liegen zunächst im Vektorgrafikformat vor, jedoch kann das Framework/Engine diese nicht laden.

Es gibt Bibliotheken die Vektordateiformate rendern können. Cairo wäre da ein Beispiel, das ließe sich sicher integrieren.

Ansonsten: Wenn dein Spiel in jeder Auflösung gleich aussehen soll, warum willst du dann verschiedene Auflösungen?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

17.01.2009, 10:58

Du könntest deine Grafiken als Vektorgrafiken speichern und dann beim Start des Spiels mit einer Library (wie gesagt: z.B. Cairo) in Pixelgrafiken der gewünschten Auflösung konvertieren.

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

7

17.01.2009, 12:00

Du könntest auch generell eher niedrigauflösende Bilder benutzen und dann bei höheren Auflösungen Bildfilter anwenden. Beim Snes9x (SNES Emulator) gibts auch son paar Filter mit denen die 320x240 SNES-Spiele auf normaler Auflösung garnicht so schlecht aussehen.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

17.01.2009, 12:53

Zitat von »"K-Bal"«

Du könntest auch generell eher niedrigauflösende Bilder benutzen und dann bei höheren Auflösungen Bildfilter anwenden. Beim Snes9x (SNES Emulator) gibts auch son paar Filter mit denen die 320x240 SNES-Spiele auf normaler Auflösung garnicht so schlecht aussehen.

Das hab ich mal bei Blocks 5 gemacht, mit HQ2X.
Sieht ganz gut aus, aber man merkt schon noch, dass die Grafiken eigentlich niedriger aufgelöst sind.
Bei mir war das nur eine Notlösung. Hätte ich von Vornherein verschiedene Auflösungen geplant, dann wäre ich anders vorgegangen.

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

9

17.01.2009, 14:35

Zitat von »"David Scherfgen"«

Zitat von »"K-Bal"«

Du könntest auch generell eher niedrigauflösende Bilder benutzen und dann bei höheren Auflösungen Bildfilter anwenden. Beim Snes9x (SNES Emulator) gibts auch son paar Filter mit denen die 320x240 SNES-Spiele auf normaler Auflösung garnicht so schlecht aussehen.

Das hab ich mal bei Blocks 5 gemacht, mit HQ2X.
Sieht ganz gut aus, aber man merkt schon noch, dass die Grafiken eigentlich niedriger aufgelöst sind.
Bei mir war das nur eine Notlösung. Hätte ich von Vornherein verschiedene Auflösungen geplant, dann wäre ich anders vorgegangen.


Naja, da gibts ja verschiedene Filteralgorithmen, aber stimmt schon, man sollte es von vornherein planen ;)

Wenn man die Auflösung in einem gewissen Rahmen variabel hält könnte man auch auf das Skalieren verzichten. Beispiel: Diablo 2. Es gibt nur 640x480 und 800x600. Bei letzterem sieht man einfach mehr von der Karte und die Gui-Elemente werden kleiner dargestellt.

10

17.01.2009, 20:12

Zitat von »"xardias"«

Ansonsten: Wenn dein Spiel in jeder Auflösung gleich aussehen soll, warum willst du dann verschiedene Auflösungen?

z.B. weils beschissen aussieht, auf nem Breitbildschirm mit 4:3 auflösung zu spielen, und umgekehrt - insbesondere, wenn der bildschirm das nicht schnallt, unds Bild verzerrt/abgeschnitten wird.

Werbeanzeige