Grafiken vorberechnen?

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Travis

Betreff: Grafiken vorberechnen?

BeitragDi, Mai 18, 2004 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe vor einen Asteroids-Clone zu programmieren und suche jetzt eine kompfortable Methode meine Grafiken möglichst Speicherplatzsparend zu speichern und schnell zu laden.

Sämtliche Objekte im Spiel müssen um 360° drehbar sein, d.h. ich brauche für jedes Objekt 360 Einzelbilder! Wenn ich jetzt aus einzelnen Bitmaps heraus am Anfang alle Einzelbilder vorberechne, dauert das bei X verschiedenen Objekten natürlich viel zu lange.

Wenn ich diese Vorberechnung nur einmal mache und dann eine neue BitMap-Datei mit den Einzelbildern erstelle, kann ich diese sehr schnell mit LoadAnimImage laden. Dann habe ich aber das Problem, dass die Dateien relativ Groß sind.

Ich möchte dem Spieler ungerne zumuten, dass er jedesmal eine Minute warten muss, bis das Spiel geladen ist. Andererseits sollten die Grafiken aber auch nicht zu Groß werden.

Irgendwer wird doch sicher schon mal was ähnliches gemacht haben. Vielleicht hat ja jemand eine kompfortablere Lösung.
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.
 

xperience2003

Betreff: ...

BeitragDi, Mai 18, 2004 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
kommt auf die game-grafik an, aber ich denke es müssen keine 360 einzelbilder sein ...es reichen auch alle 2 grad ein bild

du kannst ja im vordergrund ein einleitungsintro laufen lassen
und im hintergrund alles vorberechnen lassen...das merkt auch keiner

wenn dir das immer doch zu langsam ist:
lass doch die bilder berechnen , speicher das gesammtbild ab
und lädst beim spielstart nur das gesammte fertige bild als animimage ein

Travis

BeitragDi, Mai 18, 2004 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, ich will meine Asteroiden rotieren lassen. Wenn ich jetzt nur 180 Einzelbilder nehme, dann sieht die Bewegung bei langsamer Rotation unsauber aus.

Und ein Bild erstellen und mit LoadAnimImage laden funktioniert wunderbar, nur sind dann die Grafiken allein für 2 Asteroidentypen und dem Spieler schon fast 10 MB groß.
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

Abrexxes

Betreff: Re: Grafiken vorberechnen?

BeitragDi, Mai 18, 2004 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Travis hat Folgendes geschrieben:
Sämtliche Objekte im Spiel müssen um 360° drehbar sein, d.h. ich brauche für jedes Objekt 360 Einzelbilder!


übertreibst du da nicht ein bischen?

Um genaue Drehungen (zb) darzustellen hat mann dem 2D abgesagt und 3D entwickelt.Was du also brauchst sind 3D objekte,keine 360 Einzelbilder.

Bei der Resourcenverschwendung wird wohl so macher 08/15 PC in die Knie gehen.Wenn s den so sein soll,dann lass alles beim ersten Start vorberechnen und legs auf der Festplatte ab,aber so mancher wird dann wohl nicht in den genuss des Games kommen.

cu Linux

Travis

BeitragDi, Mai 18, 2004 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit 3D ist das wieder so eine Sache. Dann müßte ich für alles 3D Objekte haben, außerdem ist das nicht gerade mein Fachgebiet. Hätte sicherlich diverse Vorteile auch vom Licht und den Effekten her, aber damit habe ich überhaupt keine Erfahrung. Wink

Ein gutes 2D-Game ist sicher besser als eine schlechte 3D-Variante.

Was die Performance angeht, da bin ich der Meinung, dass alles was auf einem 1 Ghz-Rechner ordentlich läuft, in Ordnung ist. Was langsameres wird doch heute eh nicht mehr verkauft. Da bin ich relativ rücksichtslos Very Happy
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.
  • Zuletzt bearbeitet von Travis am Di, Mai 18, 2004 22:31, insgesamt einmal bearbeitet

Abrexxes

BeitragDi, Mai 18, 2004 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Das stimmt,ich hab aber in meinem Leben (C64/Amiga/AtariST/PC) noch kein 2D-Objekt (Sprite/BoB) gesehen das eine drehung mit 360 schritten gemacht hat.

auf dem C64 waren es in der Regel 8/Amiga/Atari/PC-DOS 16 oder 32 (sehr flüssig).

cu Linux

Markus2

BeitragDi, Mai 18, 2004 22:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder nimm runde Asteroiden dann sieht man nicht das ruckeln wenn man
nur 8 Bilder hat Smile

Travis

BeitragDi, Mai 18, 2004 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Es kommt wohl ganz auf die Geschwindigkeit an. Wenn man schnell dreht, dann reichen 36 Einzelbilder, aber je langsamer die Bewegung sein soll, desto mehr Einzelbilder brauche ich eben, damit es flüssig aussieht.

Ich möchte einzelne Asteroiden ja sehr langsam drehen, also brauche ich schon 360 Einzelbilder. Ähm, und runde Asteroiden nehme ich sicherlich nicht.

Kann man nicht Sprites nehmen? Die kann man doch in Echtzeit drehen. Dann wirds aber schwierig mit der Kollisionsabfrage.
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

BladeRunner

Moderator

BeitragDi, Mai 18, 2004 23:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich kann Linux nur zustimmen, 32 (oder von mir aus 64) Animationsschritte sind mehr als genug (wenn du nicht gerade Asteroiden hast welche mehr als den halben Screen bedecken).Mal ein wenig provokant: wenn wir das 400° System nutzen würden, müssten es dann 400 Schritte sein damit es flüssig genug ist? (nicht bös gemeint, ich hoffe du verstehst worauf ich hinaus will)
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Abrexxes

BeitragDi, Mai 18, 2004 23:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest zb auch ein 180Grad drehung immer wiederhohlen (Grafik so austüfteln das Ausgangspunkt und Endpunkt Identisch sind,dann bräuchtest du nur noch 180 Bilder.(Halbiert)

Gehen wir davon aus du dir zusätzlich jedes 2te Bild sparen kannst (versuchs) dann wären wir schon bei 90.So würdest du langsam aber sicher in NORMALE Bildraten kommen.(Geviertelt)Ausserdem solltest du die Drehung der Asteroiden mit der Refreshrate der Graka syncronisieren,dann siehst schon wesentlich flüssiger aus.(Die Sprünge beim animieren entfallen)

cu Linux
 

Edlothiol

BeitragMi, Mai 19, 2004 7:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutze Sprites. Für die Kollisionsabfrage kannst du einfache Kreise, also Entfernung berechnen und wenn die kleiner ist als ein bestimmter Wert, dann gibts Kollision. Das merkt eh niemand. Wenn du eine Kollision Mit einem Raumschiff oder so haben willst, kannst du ja immer noch einen Kreis in ein Bild zeichnen und dann ImagesCollide benutzen.
Noch ein Vorteil von Sprites: Du kannst die Meteoriten auch noch ohne zusätzliche Ladezeiten in der Größe verändern.

Travis

BeitragMi, Mai 19, 2004 11:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann werde ich mich wohl auf 180 Bilder beschränken und die Bewegung etwas schneller machen.
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.
 

Omenaton_2

BeitragMi, Mai 19, 2004 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
360 Einzelne Animationsstufen zu nehmen ist sehr unrealistisch.
Viel weniger müßten auch genügen. Wenn es bei langsamen Rotieren unsauber wirkt, lass es ein wenig schneller rotieren.

Du kannst auch 2D mit 3D kombinieren. Du kannst das Spiel überwiegend als 2D Spiel progremmieren aber in 3D Fenster laufen lassen und die Asteroiden machst du als 3D Objekt. Das ist extrem speicher sparend und vollkommen sauber animiert.
 

ZaRaK

BeitragMi, Mai 19, 2004 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
mach aus den asteroiden einfach nen kleines video und lass die ablaufen :>

Travis

BeitragMi, Mai 19, 2004 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
@ ZaRaK
Du meinst, evtl als animiertes GIF? Währe vielleicht auch eine Lösung, dann wäre es aber wieder schwierigmit unterschiedlichen Drehgeschwindigkeiten.

Egal, ich habe mich jetzt für 180 Einzelbilder entschieden, die ich einmal vorberechne und dann als neue BMP speichere! Dann mus der User später eben 5MB Speicherplatz opfern.
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

Peer

Betreff: 360° Bilder

BeitragMi, Mai 19, 2004 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab in meinem Spiel Starcommander Raumschiffe mit 360° Drehung verwendet!. Ging richtig gut!

Download hier

Im Download ist der Source enthalten.
Und wenn man die Bilder als png speichert sind sie auch richtig schön klein!

TheShadow

Moderator

BeitragMi, Mai 19, 2004 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Kennst du Astrorock? Das ist ein hammergeiler Asteroids-Clon. Die Grafiken sind 2D (lief auf meinem P75 und Win95 damals sehr flüssig) - jedoch waren die Grafiken gerendert. Ein Asteroid hatte sich um 3 Achsen gedreht (langsam!) und hatte sicher 32 frames pro umdrehung gehabt - sonst wäre das Spiel bei 1MB VRAM wohl unspielbar Smile

http://store.ifd.com/product_i...ucts_id=67
(hier ist sogar 2000er Version - wobei ich glaube, dass frühere besser ausgesehen hat)
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Ensign Joe

BeitragMi, Mai 19, 2004 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
RotateImage
?

Travis

BeitragMi, Mai 19, 2004 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, dieses Astrorock sieht echt cool aus. Vielleicht mache ich es auch so, dass man ein größeres Spielfeld hat und dann gescrollt wird, wenn man zum Bildschirmrand kommt. Das bringt glaube ich noch mehr Fun, als nur eine Bildschirmgröße zu benutzen.

Jetzt habe ich auch ungefähr einen Plan, wie's weitergeht. Ich werde mein Raumschiff auch mit Schutzschilden ausstatten. Dann baue ich noch Gegner ein. Wenn man die Abschießt, gibt's Extras. Da wären z.B. Schildverstärker, Raketen, Extraleben oder auch Mienen denkbar.

Das Schwierigste dabei werden mal wieder die Grafiken und die Special-Effekts. *seufz*
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.
 

Kekskiller

BeitragMi, Mai 19, 2004 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei StarTrash ahtte ich das Problem erst auch, habe mich dann
aber für RotateImage entschieden, da ich das Spiel auch downloadbar
machen wollte. Obwohl, wenn man den TFormFilter einschaltet, dann
sieht das schon viel flüssiger aus, frisst aber viel mehr Zeit in sich hinein.

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group