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

25.12.2009, 23:19

verschiedene Auflösungen

Hallo,

ich weiß zurzeit nicht, wie ich verschiedene Auflösungen in einem 2D-Spiel bewerkstelligen soll. Man stelle sich vor, man habe z.B. eine Spielergrafik, die 128x128 groß ist. Wenn die Auflösung jetzt 800x600 beträgt, dann hat der Spieler weniger Freiraum, um sich zu bewegen, als bei 1280x1024. Das ist im Grunde nicht schlimm, aber wenn es sich z.B. um ein Towerdefense-Spiel handelt, dann wäre bei einer größeren Auflösung mehr Platz, um sich zu bewegen - der Spieler hätte es dann einfacher, weil die Feinde einen größeren Weg in Anspruch nehmen müssen, um zum Ziel zu gelangen.

Wie würdet ihr das lösen, oder: Wie löst ihr das?
Vielleicht hab' ich auch einfach nur einen falschen Grundgedanken.

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

2

26.12.2009, 09:45

Wieso haben die Gegner dann mehr Platz? Das Spielmodell (Bewegung der Gegner, Kollisionen, etc) sollte Auflösungsunabhängig geschehen.

Im Grunde gibt es zwei Möglichkeiten wie du verschiedene Auflösungen unterstützen kannst:
Du skalierst die Bilder, oder du stellst einfach einen größeren Kartenaussschnitt dar.

Das skalieren hat den Nachteil, dass die Bilder verwaschen aussehen können. Der größere Kartenausschnitt hat den Nachteil, dass er dem Spieler dadurch einen Vorteil verschafft (er sieht halt mehr).

Die einfachste Methode ist es jedoch mit einer festen Auflösung zu arbeiten. Die verschiedenen Auflösungen machen im Grunde nur in 3D Spielen wirklich sinn.

3

26.12.2009, 11:07

xardias hat es ja schon genannt.
Die Bilder scalen fand ich eigentlich immer recht praktisch und ich hatte da auch nicht so die verwaschen Grafiken wie man es vielleicht jetzt glaubt.
Finde ich persönlich aber die bessere Methode.

4

26.12.2009, 15:06

Zitat von »"xardias"«

Die einfachste Methode ist es jedoch mit einer festen Auflösung zu arbeiten. Die verschiedenen Auflösungen machen im Grunde nur in 3D Spielen wirklich sinn.
Etwas mühsam kann es im Vollbildmodus werden. Je nach Bildschirmgrösse und -seitenverhältnis können die Grafiken ziemlich verzerrt oder unscharf aussehen...

Lerikson

Alter Hase

Beiträge: 412

Wohnort: nördlich von Hamburg

Beruf: Schüler

  • Private Nachricht senden

5

26.12.2009, 15:37

du könntest doch auch für jede auflösung einen (konstanten)Wert anlegen, wenn dann z.B. eine "große" wie 1280x1024 gewählt wird multiplizierst du mit diesem um die gleichen Bewegungsgeschwindigkeiten wie bei einer kleinen Auflösung zu bekommen.
[Ich hoffe du verstehst wie ich das meine, weiß nicht wie ich wie ich diese Idee formulieren soll :roll: ]

Allerdings finde ich die mit dem Skalieren auch gut :D
Errare est humanum. -Windows ist menschlich ;-)

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

6

26.12.2009, 17:15

Wenn du mit DirectX und co arbeitest, kannst du auch matrizen einsetzten, um alles automatisch zu skalieren

7

26.12.2009, 17:25

Zitat


Wenn du mit DirectX und co arbeitest, kannst du auch matrizen einsetzten, um alles automatisch zu skalieren

Hat nur ein Problem, wenn man mit transformierten Vertices arbeitet, was sich ja für 2D anbietet, dass die dann gar nicht mehr transformiert werden. ;)

8

26.12.2009, 17:51

Re: verschiedene Auflösungen

Zitat von »"Luinechor"«


Wie würdet ihr das lösen, oder: Wie löst ihr das?
Vielleicht hab' ich auch einfach nur einen falschen Grundgedanken.

Grundsätzlich sollte man darauf achten, Spiellogik und Darstellung zu trennen.
Die Auflösung betrifft offensichtlich nur die Darstellung, also darf sie die Spiellogik nicht beeinflussen.
Man kann einfach mit beliebigen Koordinaten die Spiellogik berechnen und sich dann Regeln überlegen, wie du es darstellst.
Einerseits kann man die Bilder so skalieren dass man bei jeder Auflösung immer das selbe zu sehen bekommt. Man kann auch die Bilder immer in der Originalgröße anzeigen, dann sieht man halt bei einer größeren Auflösung mehr vom Spiel (wie in Diablo 2 oder diversen Strategiespielen).
Lieber dumm fragen, als dumm bleiben!

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

9

26.12.2009, 18:00

Zitat von »"E122"«

Zitat


Wenn du mit DirectX und co arbeitest, kannst du auch matrizen einsetzten, um alles automatisch zu skalieren

Hat nur ein Problem, wenn man mit transformierten Vertices arbeitet, was sich ja für 2D anbietet, dass die dann gar nicht mehr transformiert werden. ;)


Anstatt D3DFVF_XYZRHW -> D3DXMatrixOrthoLH ;)

BlazeX

Alter Hase

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

10

01.01.2010, 17:54

Oder noch eine Idee, die ich eventuell mal in einer GUI unterbringen will.
Eine feste Auflösung von 800x450 festlegen und die Spiellogik daran anpassen.
Beim Zeichnen wird dann bei je nach Auflösung skaliert, aber das Verhältnis beibehalten. Praktisch hat man bei 4:3 Auflösungen oben und unten schwarze Balken. Einzig Phillipps 21:9er hätte links und rechts schwarze Balken.
Hier könnte mal verschiedene LODs einsetzten und zum Beispiel Bitmap-Texte für kleine, mittlere und hohe Auflösungen anzubieten und entsprechend zu wählen.

Werbeanzeige