Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-10-2007, 05:29   #1 (permalink)
Animateur
 
Benutzerbild von Master Wu
 
Registriert seit: Jan 2003
Ort: MZ
Beiträge: 1.536
BItmap-only games (no Movieclips)?

HI Leute,

habe gerade mit grossem Interesse folgenden Thread gelesen:
http://www.kirupa.com/forum/showthread.php?t=276114

Darin gehts darum, keine Movieclips/Sprites bei der Spieleprogrammierung zu verwenden, sondern alles per copyPixel darzustellen und jeden Frame das Bild neu zu fuellen, was wohl performanter ist.
Dabei wird auch die Spiellogik komplett von der Darstellung getrennt, Kollisionen etc. alle mathematisch berechnet.

Mich wuerde mal interessieren, ob hier jemand diese Technik verwendet, und ob ihr es empfehlen wuerdet, was ihr dazu denkt, ob man mit vielen Problemen rechnen muss usw.

edit: sorry, wollte eigentlich ins Spieleforum posten :/
__________________
there is no way to happiness, happiness is the way - flashgames
Master Wu ist offline   Mit Zitat antworten
Alt 24-10-2007, 08:22   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
edit: sorry, wollte eigentlich ins Spieleforum posten
Kein Problem ->verschoben
  Mit Zitat antworten
Alt 24-10-2007, 09:57   #3 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
ich glaube nicht das es so viel perfomanter ist,
da as3 ohne hin schon schnell ist.

es ist ja auch was anderes als in c/c++ wo du eben keine movieclips
mal eben hast sondern bitmaps lädst bzw. 3d modelle, diese renderst
usw.

ich glaube die entwickler haben sich schon was dabei gedacht movieclips und sowas zu machen falls jmd ein spiel mit flash machen will.

wir sind schließlich bei as3 und nichtmehr bei flash4 wos ja eig nur um animationen etc. ging und noch nicht auf eine rihctige scriptsprache + compiler.
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 24-10-2007, 10:04   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Die schnellste Möglichkeit die ich herausgefunden hatte ist folgende gewesen:

Ich hatte für meine Grafiken (Tiles) jeweils BitmapData Objekte erstellt.
Anschließend dann einen Sprite (als Container) in den ich so viele Bitmap Objekte angelegt und ausgerichtet habe, dass der ganze Bildschirm ausgefüllt ist.
Nun brauchst du nur noch eine Methode die per doppelter for-Schleife über diese Bitmaps iteriert und weist diesem je nach Eintrag in deinem Tiles Array das entsprechende BitmapData Objekt zu.

Somit sparst du dir das ganze zeichnen der einzelnen Tiles, das handelt Flash dann intern wenn es denn Screen neu rendert, und läuft dadurch um einiges flotter..
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 24-10-2007, 13:08   #5 (permalink)
Raven-Kid
 
Benutzerbild von [RK]
 
Registriert seit: Feb 2006
Beiträge: 350
Ja diese Variante der Darstellung verwendet ein Freund von mir (monolith) in seiner neuen TileBased Jump and Run Engine. Sogar Animationen werden gezeichnet. Also ich hab jetzt nicht den Artikel gelesen, aber das was er macht nennt sich blitting und ist verdammt schnell. Allerdings wirkt sich das halt sehr auf den Speicher aus, da Animationen volle Bitmap-Datein sind (unkomprimierte) ... MC's dagegen würden ja afaik komprimiert werden. Aber für einen Mario-Clone reichts alle mal x)

Aber wenn man nun verdammt lange Animationen hat ... also z.B.: 25fps, 8 Perspektiven, 4 Animationen ... und das ganze pro Charakter, also sagen wir nochmal *4 ... sind das ein haaauuuufen Bitmaps die in den Speicher müssten. Noch bin ich nicht dazu gekommen soetwas derartiges ausreichend zu testen. Hat jemand vll schon Erfahrungen mit so einer Menge an Bilddatein? Ich verwende zwar ein recht gutes Pane-System, aber ich habe die Befürchtung das es nicht reichen wird ...

€: oho ... dein Link stellt isch als äusserst lesenswert herraus x)

Geändert von [RK] (24-10-2007 um 13:18 Uhr)
[RK] ist offline   Mit Zitat antworten
Alt 25-10-2007, 12:23   #6 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
interessanter link, und interessantes thema.

ich glaube nicht dass man movieclips unbedingt braucht...
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 26-10-2007, 01:29   #7 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
hi,

@Master wu,

finde ich gut deinen Tip, aber abgesehen von der Möglichkeit, mehr "Speed" aus einem Spielchen rauszuholen, was eine Sache ist, sollte man aber trotzdem auch den praktischen Aspekt nicht ausser acht lassen, weshalb die MovieClips wohl einst kreiert worden sind.
Ich finde es schon praktischer, meine MC schön übersichtlich in eine .fla-Bibliothek zu verwalten, statt irgendwelche bitMapData-Objekte zu erzeugen, wo dann die Bitmaps reingeladen werden...?
Also, was ich meine, neben dem Aspekt "Speed" sollte man das "Grosse Ganze" nicht aus den Augen lassen, denn die Organisation der leicht mal 10-100 bis 1000 Bitmaps und mehr ist mitunter wichtiger und vordergründiger als der Aspekt "Speed"!
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 26-10-2007, 12:22   #8 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
bei games steht nun mal das Empfinden des Players im Vordergrund, dem ist es egal ob du eine angenehm aufgeräumte Flash-Entwicklungsumgebung hast.

Manche Games leben vom Speed...

Und: Man kann auch mit BitmapData sehr aufgeräumt arbeiten. Respektive mit MovieClips total das Chaos haben... Das hat doch nichts damit zu tun...
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 26-10-2007, 13:07   #9 (permalink)
\x3a\x6f\x29
 
Benutzerbild von [je]
 
Registriert seit: Apr 2004
Ort: paris
Beiträge: 806
Könntest auch eine MovieClip Animation zur einer BitmapData Animaiton konvertieren während noch geladen wird ...
__________________
joa ebert
http://blog.joa-ebert.com/ - http://www.joa-ebert.com/
[je] ist offline   Mit Zitat antworten
Alt 26-10-2007, 13:12   #10 (permalink)
Raven-Kid
 
Benutzerbild von [RK]
 
Registriert seit: Feb 2006
Beiträge: 350
Schweren Vorteil bietet BitmapData imo deswegen, weil man es dynamisch laden kann und dann einfach nur im Speicher behält. SWF's müssen auf der Bühne rumlungern. (In AS3 nicht mehr), weiters kann ich in MovieClips dynamisch geladene Bilder nicht duplizieren wie ich will. Der Inhalt geht schlichtweg verloren! (oder gibts da doch eine Lösung?)

Und zumin. bei den Projekten die ich bis jetzt gemacht habe, war das einfach immer notwendig.


Zitat:
Zitat von [je] Beitrag anzeigen
Könntest auch eine MovieClip Animation zur einer BitmapData Animaiton konvertieren während noch geladen wird ...
Was genau meinst du damit? Die einzige Variante die mir eingefallen ist (und ich arbeite leider noch sehr mit den Wissensstand von AS2) wäre ein MC abzuspielen, jedes Frame das Bitmap das in dem Frame befindlich ist in ein Array stecken, und dann das Array zum "abspielen" der Animation verwenden, in dem ich jedes Frame das nächste Bitmap aus dem Array lese und einem MC (bzw Sprite) attache.

Geändert von [RK] (26-10-2007 um 13:15 Uhr)
[RK] ist offline   Mit Zitat antworten
Alt 26-10-2007, 17:16   #11 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
@georgem,
ne ist schon klar, wollte dich auch nicht angreifen
Ok, seh's ja ein, das es einige Vorteile gibt mit dem bitmapData, nur weiss ich IMO überhaupt nicht, wie ich das einsetzen sollte ??
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 26-10-2007, 19:25   #12 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
huch! ... mich angreifen!...hab ich was verpasst? Ich geh mal besser in Deckung
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 27-10-2007, 21:23   #13 (permalink)
Raven-Kid
 
Benutzerbild von [RK]
 
Registriert seit: Feb 2006
Beiträge: 350
*/me schmeisst mit doofen MovieClips nach georgem*
"Nimm das! georgem!"
[RK] ist offline   Mit Zitat antworten
Alt 27-10-2007, 23:35   #14 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
[wehrt mit Bitmap-Shild ab]
haha! Ich bin der King der Bitmaps
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 05-11-2007, 18:59   #15 (permalink)
Neuer User
 
Benutzerbild von tomsamson
 
Registriert seit: May 2002
Beiträge: 174
zur Thread Frage: yup, mit Bitmapdata basierter grafischer Seite kommt man performancemäßig viel viel weiter als mit ner Movieclip basierten Lösung.

Hier ein kleines Beispiel:
http://www.stimunationgames.com/labs...cles/sparkles/

Wären die Partikel alle einzelne Mcs könnte man froh sein wenn man um die 50-100 flüssig darstellen kann. In nem eigentlichen Spiel würde man wahrscheinlich nicht soviele rumwuselnde Sachen auf dem Screen haben, das Beispiel zeigt aber doch ganz gut, wieviel bessere Performance ein Bitmapdata only basierter Ansatz mit sich bringen kann (und wieviel mehr Performance man dann für andere Sachen, von denen es ja genug in nem Spiel gibt übrig hat).
Das Ganze würde noch zigfach schneller laufen,wenn die Partikel kleiner /nicht mit semi alpha Transparenz/nicht animiert wären, dann kann man locker über 10k bei hohem fps Count packen.

zu crypto´s Kommentar:
"ich glaube nicht das es so viel perfomanter ist,
da as3 ohne hin schon schnell ist."

Mit AS3 ist die Code Ausfürhung performanter, an der Performance der grafischen Seite hat sich leider nicht viel verändert, inzwischen ist es so dass man codeseitig unglaublich viel mehr performant ausführen könnte, als der Flash Player grafisch schnell rendern kann, speziell bei (vor allem Action intensiven) Spielen ist also jedes plus an Performance auf der grafischen Seite sehr zu begrüßen
Und selbst wenn man vorher was hatte, was schon ganz nett mit um die 30 fps lief ists doch toll,wenn man plötzlich soviel bessere Performance hinkriegt, dass man noch viel wildere Sachen einbauen kann oder das Spiel auch auf Kisten mit halb so schneller CPU fein läuft

[RK]´s Einwand re Ram Auslastung ist ein guter, das ist nämlich der Haken daran: Von der Cpu verlagert man die Last weg, dafür geht die Ram Auslastung hoch, da muss man halt dann kucken, dass man nen sinnigen Aufbau hat und nur soviel nutzt wie nötig.

Ob man die komplette grafische Seite BitmapData only macht kann man von Fall zu Fall entscheiden, aber yup, in vielen Fällen ists ne sehr gute Wahl.
__________________

Stimunation

Geändert von tomsamson (05-11-2007 um 19:02 Uhr)
tomsamson ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:12 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele