Seite 3 von 7

Verfasst: 12.01.2009 19:56
von PMV
Kaeru Gaman hat geschrieben:
PMV hat geschrieben:Ansonnsten macht ihr euch auch viel Gedanken um mögliche Auflösung ...
wofür? Der PC-Benutzer weis, was er am besten für eine Auflösung haben
will und die Hardware gibt alle möglichen Auflösungen zurück. Sollen das
Bild immer ein bestimmtes Verhältnis oder Gesamtauflösung haben, muss
es entweder im Windows-Modus laufen, oder der Fullscreen bekommt
schwarze Balken und die Ränder werden halt nicht benutzt.
Damit sind alle möglichen Fälle abgedeckt. :wink:
Du scheinst dich ja sehr gut damit auszukennen... dann sag mir doch mal, wie du selber konkret vorgehen würdest.
... steht doch da :?

MFG PMV

Verfasst: 12.01.2009 20:07
von Kaeru Gaman
nope... man beachte das wörtchen "konkret" in meinem posting.

"der Fullscreen bekommt schwarze Balken" nicht automatisch.
du musst also das aktuelle Seitenverhältnis ermitteln, eine passende Auflösung schalten,
und deine Schwarzen Balken selber anbringen.

... bei einem Echten Fullscreen wird das auch aufwendig,
da du die Balken über deine fertige Darstellung drüber zeichnen musst.

einfacher ist das mit einem maximierten WindowedScreen,
da musst du dir "nur" eine Möglichkeit ausfuchsen, die Balken einfach wegzulassen,
dann bist du allerdings auch entweder auf die Volldarstellung festgelegt,
obwohl du einen Windowedscreen hast geht nichts mit "Wiederherstellen"-Größe,
oder du hast Event- und Mouse-Probleme, weil du den Screen in einen Container packen musst.


es ist also weit entfernt von "mal einfach so, ihr macht euch zu viele Gedanken",
deswegen meine leicht sarkastische Nachfrage...

Verfasst: 12.01.2009 20:18
von PMV
nö ... das ist und bleibt einfach ...
Du kennst die Auflösung für die du dein Programm erstellst ...
Somit lässt sich alles leicht für die andere Auflösung berechnen. Am
einfachsten wird mit den Werten 2 Sprites erstellt die dann lediglich an
Position 0, 0 und der anderen berechneten Position als letztes angezeigt
werden und gut. Für die Achsenverschiebung wird ne extra Variable beim
Anzeigen benutzt.

Und wenn man nicht direkt auf den Screen zeichnen muss kann man auch
nen Sprite als Puffer nehmen ... und so muss nur noch das entgültige
Sprite angezeigt werden ... so hab ich das in einem Spiel gelöst. Überall
wo nichts gezeichnet wird ist er schwarz.

MFG PMV

Verfasst: 12.01.2009 20:22
von Xaby
Jetzt steiten wir uns schon über Auflösungen.

Wie werden die Bildschirme in 5 Jahren aussehen?

Wie sie jetzt aussehen spielt weniger ne Rolle, weil niemand von uns
sein Projekt in zwei Tagen fertig bekommt und selbst wenn, geht es ja drum,
dass man das Projekt auch noch in 5 Jahren benutzen kann.

Mein Lieblingsbeispiel hier ist StartCraft.

640 x 480 bei 234 Farben. (Die Farben können auch mehr oder weniger sein)

Und es sieht immer noch gut aus. Man benötigt kein 8xAA, keine anderen
Filter, keinen schnellen Computer für heutige Verhältnisse und auch keinen
Emulator, weil es auf Direct X basiert.

Die Auflösung kann man bei StarCraft nicht umstellen, was bedeutet,
dass sie bei jedem Netzwerkspieler gleich ist.

640 x 480 können heute sogar Handhelds darstellen.

Ansonsten mag ich auch Auflösungen darunter wie etwas 320 x 200.
Die sind für alte Konsolenspiele oder DOS-Spiele benutzt worden
und können auch mit entsprechenden Filtern noch bei 20" gut aussehen.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Ist eigentlich ganz einfach,

menüs werden ja nie als feste Pixel angegeben, weil man es ja
skalierbar machen möchte.

Also richtet man seine Menüs immer an den Kanten aus.

Man sollte aber Menüs nie so groß machen, dass zum Beispiel ein
Menü, welches links und unten bei einem 4:3 Verhältnis stimmig ist,
dann plötzlich bei einem 16 : 9 oder 16 : 10 Seitenverhältnis sich
überlappt.

Also müsste man das Menü so konstruieren, dass es bei 16:7 oder so
perfekt passt und den Rest dann mit Verzierungsgrafiken ausgleichen
oder durch das entsprechende Zoomens des Menüs.

Das Problem tritt ja schon bei gleichen Seitenverhältnissen, aber
anderen Auflösungen auf.

>>>>>>>>>>>>>>>>>>>>>>>>>>

Also kein neues Problem, was auf den Programmierer zu kommt :freak:

Und denkt dran, alte Menschen können schlechter kucken.
Da brauchste also keine 8 x 8 große Schrift auf ein 1920 x 1080 Bildschirm
bei 30" packen.

:roll:

Verfasst: 12.01.2009 20:28
von Xaby
Wieso wollt ihr schwarze Balken erstellen?

Was treibt ihr denn den ganzen Tag?

Macht ihr verschlüsselte Spiele oder veraute Spiele, wo ihr solche Balken braucht?

1. Window-Screen fällt zu mindest unter XP schon mal weg, da die Performacne
immer noch geringer ist als echtes Vollbild

2. der Nutzer kann selbst am Monitor oder an der Grafikkarte einstellen,
ob er ein gezerrtes Bild haben möchte, oder die native Auflösung.
Oder sogar eine Kombination aus beidem

Ein 320 x 200 Spiel könnte bei einem 1024 x 768 Bildschirm dann
als 960 x 600 ausgegeben werden und das entweder in einem
Kästchen oder halt gezerrt.

Ich denke auch, dass die Frage uns eigentlich nicht mehr betrifft,
weil ich glaube, dass man auf jedem Monitor mit Windows jede Auflösung
darstellen kann.

Windows erweitert automatisch den Desktop, wenn die native Auflösung
zu gering ist.

Verfasst: 12.01.2009 20:39
von Kaeru Gaman
@Xaby

entschuldige ein paar mal, aber hast du von spielen überhaupt die geringste Ahnung?

> 1. Window-Screen fällt zu mindest unter XP schon mal weg, da die Performacne
> immer noch geringer ist als echtes Vollbild

wo bitte?

> 2. der Nutzer kann selbst am Monitor oder an der Grafikkarte einstellen,
> ob er ein gezerrtes Bild haben möchte, oder die native Auflösung.

der Spieler soll seine Desktopauflösung verpfuschen, um ein Game zum laufen zu kriegen?


> Ich denke auch, dass die Frage uns eigentlich nicht mehr betrifft,
> weil ich glaube, dass man auf jedem Monitor mit Windows jede Auflösung
> darstellen kann.

das ist wohl kaum eine Glaubensfrage, aber bitte zeig mir mal, wo ein Monitor "jede" auflösung darstellen kann.

bei mir hab ich DREI Auflösungen für den Desktop zur Auswahl,
vom Game aus direkt noch ne vierte, allerkleinste, und dann wars das.


> Windows erweitert automatisch den Desktop, wenn die native Auflösung
> zu gering ist.

oh PHANTASTISCH!
also erstelle ich ein game in nem 3200x1800 Fenster mit Windowedscreen,
damit garantiert JEDER der es spielen will in den Genuß der Scrollbalken am Desktoprand kommt
und die Chancengleichheit wird dadurch gewahrt, dass jeder verkackt weil es unspielbar ist.


boah MANN!
manchmal könnte ich echt... *grml*blrm*hrgrm*

Verfasst: 12.01.2009 20:43
von Kaeru Gaman
so und jetzt mal in aller Ruhe back_to_topic
PMV hat geschrieben:nö ... das ist und bleibt einfach ...
Du kennst die Auflösung für die du dein Programm erstellst ...
Somit lässt sich alles leicht für die andere Auflösung berechnen. Am
einfachsten wird mit den Werten 2 Sprites erstellt die dann lediglich an
Position 0, 0 und der anderen berechneten Position als letztes angezeigt
werden und gut. Für die Achsenverschiebung wird ne extra Variable beim
Anzeigen benutzt.

Und wenn man nicht direkt auf den Screen zeichnen muss kann man auch
nen Sprite als Puffer nehmen ... und so muss nur noch das entgültige
Sprite angezeigt werden ... so hab ich das in einem Spiel gelöst. Überall
wo nichts gezeichnet wird ist er schwarz.

MFG PMV
das kommt aber sehr stark drauf an, wie du deinen Content erzeugt hast.
wenn du ne 3D-Engine benutzt, wunderbar, alles kein Thema.
aber wenn du 2D-Sprites benutzt, dann kannst du für jede Auflösung ein eigenes Spriteset mitliefern,
oder du nimmst in Kauf dass ein Effekt wie z.B. bei AOE2 auftritt,
dass du auf einer höheren Auflösung auch einen Größeren Bereich siehst.

Wenn du immer gleich groß und gleich viel darstellst, dann bekämest du ja auf einem
dementsprechend größeren Vollbild einen gigantischen schwarzen Rand an allen vier Seiten.

da wäre es dann doch besser, mit einem autostretch-windowedscreen das Bild zu füllen.

Verfasst: 12.01.2009 20:55
von ZeHa
Ansonsten mag ich auch Auflösungen darunter wie etwas 320 x 200.
Die sind für alte Konsolenspiele oder DOS-Spiele benutzt worden
und können auch mit entsprechenden Filtern noch bei 20" gut aussehen.
*einklink*

Mit den meisten Filtern sieht das eher dürftig aus, für mich bitte völlig ohne Filter...

Verfasst: 12.01.2009 21:01
von Xaby
Och Kaeru.

Ich hab schon Spiele nicht programmiert, da hast du schon ganze Anwendungen geschaffen :mrgreen:

Vielleicht liegt's ja an meinen Grafikkarten.
Auf meiner ATI All in Wonder 9500/9700 und meiner nVIDEA 7500 LE
ist es zu mindest so, dass einige vor allem PureBasic Programme

in einem Fenster von 800 x 600 langsamer Laufen als im Vollbild 800 x 600

Und der Unterschied ist enorm. Vollbild 400 Frames und Fenster gerade so
100 Frames. Kommt natürlich auf das jeweilige Programm an, hatte auch
schon Fälle, wo merkwürdigerweise der Fenstermodus etwas schneller war.

>>>>>>>>>>>>>>>>

Gibt es denn eigentlich noch Sprite orientierte 2D-Spiele?

Also so ernsthaft meine ich. ...

Mann könnte auch 128 x 128 große Bildchen nehmen und die je nach
Auflösung zur Laufzeit entsprechend runter skalieren.

Oder schlimmsten Fall, das schon vorher machen und nachschärfen.

So wie die Desktop-Symbole neuerdings in 16 x 16, 32 x 32, 48 x 48 und größer angeboten werden.

>>>>>>>>>>>>

Wird schon. Mal schauen, welches unserer nächsten Spiele solche Probleme haben wird :D

Verfasst: 12.01.2009 21:04
von ZeHa
Dazu würde ich einfach Sprites als Vektorgrafiken zeichnen, diese schön groß exportieren (z.B. 256x256 oder 512x512) und anschließend als Sprite3D darstellen, abhängig von der tatsächlichen Auflösung. Dann zoomt es die automatisch klein und es müßte ganz okay aussehen.

Es gibt tausende Möglichkeiten, was man machen kann. Wichtig ist nur, daß man den Spieler nicht bevormundet, sondern ihm die Wahl überläßt.