| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Animateur 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 |
| | |
| | #3 (permalink) |
| Neuer User 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 |
| | |
| | #4 (permalink) |
| voidboy 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.. |
| | |
| | #5 (permalink) |
| Raven-Kid 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) |
| | |
| | #7 (permalink) |
| wau 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! |
| | |
| | #8 (permalink) |
| x39 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... |
| | |
| | #10 (permalink) |
| Raven-Kid 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. 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) |
| | |
| | #11 (permalink) |
| wau 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! |
| | |
| | #15 (permalink) |
| Neuer User 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) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |