Dynamische Auflösung - 2D Spiel

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Shadow-Gamer
Beiträge: 152
Registriert: 06.09.2009 13:31
Computerausstattung: NB: Intel P8700, Mobility ATI HD4650, 4GB, Win 7

Re: Dynamische Auflösung - 2D Spiel

Beitrag von Shadow-Gamer »

ich wollte halt ein spiel, was man von netbook bis 22 Zoller ganz gut spielen kann u. da ich einen multiplayer einbauen will, sollte das schon recht einheitlich sein
Ich versuche ja nicht faul zu sein. :)
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Dynamische Auflösung - 2D Spiel

Beitrag von Mok »

Geht das mit den Auflösungen nicht einfacher?
Muss man wirklich für jede Auflösung von 640x480 bis 19Franzjosef einen eigenen Sprite machen? Bei 600 Sprites, was man von einem halbwegs guten Spiel verlangen kann, hat man da schon eine Menge zu tun.
Bei so Mainstream-Spielen à la Counter-Strike, Half-Life, Call of Juarez, Crysis, Call of Duty werden einem ja auch nicht hunderttausend Sprites mitgeliefert.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Dynamische Auflösung - 2D Spiel

Beitrag von Kaeru Gaman »

verstehe.

also, wenn es einheitlich sein soll, würde ich sowieso eher drauf achten, dass das seitenverhältnis immer gleich ist.

bei nem Netbook hast du das Problem, dass viele nur eine einzige Auflösung können, und die halt eher unüblich, sowas wie 1024x600 eben.
bei 22" hast du eigentlich weniger ein Problem, weil ein Spieler seine Treiber schon so einstellen wird, dass auch eine 1024x768 ordentlich angezeigt wird.


eine passable Möglichkeit wäre vielleicht, wenn du einen WindowedScreen mit einer festen Auflösung von 800x600 erzeugst,
und den mit Autostretch in ein Fenster packst, dass du an die Höhe des Desktops anpasst...


PS:
@Mok
das sind alles 3D spiele, die werden überhaupt nicht mit Sprites geliefert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Re: Dynamische Auflösung - 2D Spiel

Beitrag von Thorium »

Ich würde die Sprites nur in einer Auflösung mitliefern und zwar in der höchstmöglichen. Beim laden der Sprites würde ich diese dann auf die aktuelle Auflösung passent runterscalieren. Beim verkleinern der sprites sollte die quallität besser sein als beim vergrößern.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Dynamische Auflösung - 2D Spiel

Beitrag von Kaeru Gaman »

> Beim verkleinern der sprites sollte die quallität besser sein als beim vergrößern.

das ist grundsätzlich richtig, aber PB hat keine nativen Funktionen um Sprites zu verkleinern.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Kevin
Beiträge: 236
Registriert: 11.06.2007 12:55

Re: Dynamische Auflösung - 2D Spiel

Beitrag von Kevin »

also ich mach das immer variable bsp:

Code: Alles auswählen

InitSprite()
InitKeyboard()

screen_width=0
screen_height=0
screen_depth=0

If ExamineScreenModes()
  While NextScreenMode()
    If ScreenModeRefreshRate()=60
      screen_width=ScreenModeWidth()
      screen_height=ScreenModeHeight()
      screen_depth=ScreenModeDepth()
      If Random(5)=5
        Break
      EndIf
    EndIf
  Wend
EndIf

OpenScreen(screen_width,screen_height,screen_depth,"test")

Repeat
  FlipBuffers()
  ClearScreen(0)
  ExamineKeyboard()


  If StartDrawing(ScreenOutput())
 
    Box(0,0, screen_width,20,RGB(0,128,0))
    Box(screen_width-95,2, 90,16,RGB(0,0,128))
    
    x=screen_width-200
    y=screen_height-200
    Box(x,y, 200,200,RGB(128,0,0))
    
    y=screen_height-150
    Box(0,y, screen_width-200,150,RGB(128,128,0))

    buf$ = Str(screen_width) + "*" + Str(screen_height) + "*" + Str(screen_depth)
    DrawingMode(1)
    DrawText(2,2,buf$)

  StopDrawing()
  EndIf


Until KeyboardReleased(#PB_Key_Escape)
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Re: Dynamische Auflösung - 2D Spiel

Beitrag von dllfreak2001 »

Kaeru Gaman hat geschrieben:> Beim verkleinern der sprites sollte die quallität besser sein als beim vergrößern.

das ist grundsätzlich richtig, aber PB hat keine nativen Funktionen um Sprites zu verkleinern.
Hier würde ich Sprite3Ds verwenden die lassen sich mit ZoomSprite3D() prima vergrößern und verkleinern und mit
Sprite3DQuality() kann man einstellen ob beim zoomen weich gezeichnet wird oder nicht. So kann man auch prima Retro-Spiele basteln
die auf jedem Bildschirm knackig scharf/pixelig dargestellt werden.

Als Erstes würde ich mich auf ein festes Seitenverhältnis für das Spiel festlegen, mit schwarzen oder bunten Balken wird dann eine verzerrungsfreihe Darstellung gewahrt.

Hier ebenfalls sehr interessant:
Anderer Weg gleicher Effekt die CleanPixel©-Technologie von Zeha.
I´a dllfreak2001
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Dynamische Auflösung - 2D Spiel

Beitrag von Mok »

Kaeru Gaman hat geschrieben:@Mok
das sind alles 3D spiele, die werden überhaupt nicht mit Sprites geliefert.
Hmmm, da hast du Recht... aber das ganze Menü-GFX wird ja auch mitgeliefert.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Dynamische Auflösung - 2D Spiel

Beitrag von Kaeru Gaman »

das sind stinknormale Textures in Basisgrößen wie 1024² oder 2048², die beim Darstellen skaliert werden.
Also von der Funktionsweise sowas ähnliches wie ZoomSprite3D.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Shadow-Gamer
Beiträge: 152
Registriert: 06.09.2009 13:31
Computerausstattung: NB: Intel P8700, Mobility ATI HD4650, 4GB, Win 7

Re: Dynamische Auflösung - 2D Spiel

Beitrag von Shadow-Gamer »

ich versuche es mal damit:

->ich lege nur hochauflösende Bilder bei
->ich frage den user am anfang nach einer Passenden auflösung u. werde die Bilder mit der Image bibliothek auf die passende größe skalieren, allerdings nur proportional, damit es nicht total scheiße aussieht. Und speichere die Bilder dann ab, damit sie beim nächsten start direkt nutzbar sind.

mal sehen inwiefern das klappt...

Greeeeeeets
Ich versuche ja nicht faul zu sein. :)
Antworten