Adventure mit PB, macht wer sowas??

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

freedimension hat geschrieben:Gibt es das auch in Größer?
Yup, das eingescannte Bild ist eigentlich 1540x920 Pixel groß, aber es soll ein Oldschool-Adventure mit 320x200 Pixeln werden. Der guten alten Adventure-Zeiten wegen.... :wink:

Einige halten mich vielleicht wegen dieser Auflösung für bekloppt, aber es gibt sehr viele Leute, die auf diesen veralteten Retro-Look stehen, gerade bei Grafik-Adventures....
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

320x200 ist vollkommen ok, wenn der Spielspaß stimmt.
Das erinnert mich an die Monkey Island Zeiten, erster Teil wohlgemerkt :mrgreen:
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

wäre es nicht besser den bildschirm 640x480 zu machen und es dann aber wie 320x200 bzw 320x240 aussehen zu lassen?!

ich bezweifle das alle TFTs die auflösung problemlos darstellen können. :?

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Mein TFT macht keine Probleme solange nicht im VGA Modus gerendert wird. Dann schlägt mein monitor aus :|. Bildschirm wird schwarz und es erscheint eine schöne OSD meldung mit dem Text "VGA MODUS NOT SUPPORTET". Schon doof. Kann so ein paar meiner alten Spiele nicht spielen :cry:
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Das ist ein treffendes Argument.

@Lebostein:

erzeuge das bild doch auf 320x240x8, und resize es dann auf 640x480x16,
daß jeder Grafikpunkt 2x2 pixel groß wird, ohne weichzeichnen.
(oder 320x200 auf 640x400, dann hast du unten 80 pix platz für control-board)

kannst ja beim erstellen mit begrenzten farben arbeiten,
beim umrechnen ohne weichzeichnen wird keine Farbe dazugetan,
die vorher nicht drin war.

ich würde halt schon vorschlagen, die Bildschirmdarstellung max.Kompatibel zu machen (640x480x16)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Hmmm... bis jetzt hatte ich noch keine Probleme mit der Auflösung, egal welchen Monitor ich getestet habe. Ihr könnt ja mal den folgenden Code testen, ob er bei euch läuft (an alle die, die denken sie hätten einen Monitor der das nicht schafft). Ich bin der Meinung, die neuen Bildschirme (TFT, LCD usw.) interpolieren die Pixel sowieso immer auf die maximale Größe ihres Bildschirmes, egal welche Auflösung zu Grunde liegt. Mathematisch (algorithmisch) ist das doch kein Unterschied, ob ich 320x200 oder 640x480 Pixel auf zum Beispiel 1280x1024 hochrechne. Solange die Auflösung von DirectX und der Grafikkarte unterstützt wird, seh ich eigentlich kein Problem.

Code: Alles auswählen

InitSprite()
InitKeyboard()

If OpenScreen(320,200,16,"Adventure") ;oder 32-Bit, je nach Belieben

Repeat

  ExamineKeyboard()
  ClearScreen($B4,$07,$4B)
  StartDrawing(ScreenOutput())
  DrawingMode(1)
  Locate(100,100)
  DrawText("Das ist ein Test!")
  StopDrawing()
  FlipBuffers()

Until KeyboardReleased(#PB_Key_Escape)

EndIf
In der Konfiguration wollte ich eigentlich das Spiel laufen lassen, vom ursprünglich geplanten 8-Bit-Modus bin ich schon seit längerer Zeit abgesprungen....
Zuletzt geändert von Lebostein am 01.02.2005 11:27, insgesamt 1-mal geändert.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Lebostein:
320x200 ist eine heute unübliche Auflösung und wird von einigen
Karten schon nicht mehr unterstützt. In Zukunft kann das evtl.
noch schlimmer werden.

Ich würde Dir auch raten es min. 640x480 zu machen, besser
sogar 800x600.
Der Rest im Adventure (Text, MouseCursor, usw.) sieht dann
auch wesentlich besser aus - die Bilder kannst Du ja trotzdem
so pixelig hochzoomen.
Oder Du lässt den User die Auflösung auswählen und zoomst
dann die 320x200-Bilder beim laden auf die entspr. Größe.

So wäre es IMO am besten. Erfordert vielleicht etwas mehr
sauber geplante Programmierarbeit, aber dafür ist es dann
ordentlich.
Dein Spielkern kann ja trotzdem mit 320x200 rechnen - Du brauchst
nur ein paar Prozeduren die vom eingestellten Modus nach 320x200
umrechnen, und umgekehrt. Dadurch bekommst Du z.B. die
MousePosition trotzdem im 320x200-Format und zur Textausgabe
kannst Du auch Deine Koordinaten verwenden, die dann nur
umgerechnet werden.

Beim coden solltest Du aber ordentlich arbeiten. Dein kleiner
Test enthält ja nicht einmal eine einzige Überprüfung auf Fehler -
und wenn das schon so anfängt... ;)
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Danilo hat geschrieben:Beim coden solltest Du aber ordentlich arbeiten. Dein kleiner
Test enthält ja nicht einmal eine einzige Überprüfung auf Fehler -
und wenn das schon so anfängt... ;)
Hohoh, immer mal langsam mit den Unterstellungen... :)
Ich kann von mir behaupten, dass in meinen Programmen immer alles ordentlich (fast schon übertrieben) geprüft wird und ich sehr viel Wert auf Fehlerroutinen und ordnungsgemäßes Beenden meiner Programme bei kritischen Fehlern lege. Das kleine Beipspiel hier hab ich nur schnell hingeschrieben, damit man mal den verwendeten Screenmode (320x200x16) auf seinem Bildschirm testen kann (kopieren - einfügen - testen)....

So in etwa sieht es normalerweise in meinem Code aus:

Code: Alles auswählen

DIRECTX = 1

If InitSprite()   = 0: DIRECTX = 0: EndIf
If InitSprite3D() = 0: DIRECTX = 0: EndIf
If InitKeyboard() = 0: DIRECTX = 0: EndIf
If InitMouse()    = 0: DIRECTX = 0: EndIf

If DIRECTX = 0: MessageRequester(#MYTITLE, "DirectX 7 konnte nicht initialisiert werden!"): End: EndIf

DIRECTX = OpenScreen(PREF\SCR_WIDEX, PREF\SCR_WIDEY, PREF\SCR_DEPTH, #MYTITLE)

If DIRECTX = 0: MessageRequester(#MYTITLE, "Bildschirmmodus wird nicht unterstützt!"): End: EndIf
Danilo hat geschrieben:Dein Spielkern kann ja trotzdem mit 320x200 rechnen - Du brauchst
nur ein paar Prozeduren die vom eingestellten Modus nach 320x200
umrechnen, und umgekehrt. Dadurch bekommst Du z.B. die
MousePosition trotzdem im 320x200-Format und zur Textausgabe
kannst Du auch Deine Koordinaten verwenden, die dann nur
umgerechnet werden.
Das ist keine schlechte Idee. Ich mach mein Spiel jetzt erstmal für 320x200 Pixel und baue evtl. später noch eine Funktion ein, die die Sprites beim Laden vergrößert und die Positionswerte auf dem Bildschirm entsprechend anpasst. Da die Adventure-Engine ja sowieso extrem flexibel in Sachen Auflösung und Sprite-Handling gestaltet ist, sollten da keine Probleme auftreten...
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Lebostein hat geschrieben:Hohoh, immer mal langsam mit den Unterstellungen... :)
OK - Entschuldigung.

Wenn Jemand den obigen Code ausführt und etwas nicht
korrekt funktioniert (InitSprite, OpenScreen), dann ist das
Ergebniss undefiniert, da der Code trotz Fehler einfach
weiterläuft.
"Undefiniert" kann _auch_ Crash heißen, z.B. das Windows
einfach rebootet. Gerade mit DirectX (DX = hardwarenah)
passiert sowas recht schnell bei Fehlern und undefinierten
Zuständen.
Sowas ist dann einfach nur ärgerlich...

War nicht böse gemeint, sondern nur ein Hinweis auf sauberes/
ordentliches Programmieren - um _vermeidbare_ Fehler/Crashes
auszuschließen. ;)
Wenn es bei jemandem crasht, weil unsauber programmiert,
und die HDD schreibt gerade: es kommt zu einem Headcrash
der Platte, dann ist das "nicht schön". Sag niemals nie... :D
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Danilo hat geschrieben:War nicht böse gemeint, sondern nur ein Hinweis auf sauberes/
ordentliches Programmieren - um _vermeidbare_ Fehler/Crashes
auszuschließen.
:) hast schon Recht, gerade bei einer solchen 'eigenartigen' Auflösung sollte man die DX-Sachen prüfen, auch wenn das Beispiel noch so klein ist. Aber dazu hat man meistens keine Lust, wenn man mal schnell was fürs Forum schreibt.... :roll:
Antworten