[Projekt] 3D-Framework für Flash

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Antworten
joeydee
Establishment
Beiträge: 1057
Registriert: 23.04.2003, 15:29
Kontaktdaten:

[Projekt] 3D-Framework für Flash

Beitrag von joeydee »

Hallo zusammen,
ich möchte hiermit auch mal meine derzeitige Hobbyarbeit vorstellen. Mein Dauerprojekt ist ein kleines überschaubares Flash-Framework insbesondere für simple 3D-Spielchen. Alles möglichst einfach gehalten und überschaubar zu benutzen. Nicht weil ich dachte ich muss die zahlreichen 3D-Engines mit einem weiteren unfertigen Projekt überfluten. Das Framework ist vielmehr aus unzähligen Prototypen entstanden, anfangs aus einer reinen Projektor-Klasse für Punkte sowie einer Hilfsklasse zur Matrix3D. Inzwischen umfasst es u.a.:
- Timing
- 2 Renderer (einer davon Hardware mit Stage3D, der andere nur Software für Wireframes)
- ein World-System, dem Physik, Visualisierung, KI etc. pluginmäßig in Queues angehängt werden können
- eine einfache GUI für Buttons und Menü- und Screenführung (für grafisches Skinning vorbereitet, Liquid Layout ist angedacht), funktioniert auch auf Multitouch-Screens
- einen allgemeinen Asset-Loader
- eine Meshklasse welche beliebige Streams aus Vertexdaten generiert
- einen obj-Parser (ok, der liest längst nicht alles, ist auch nur ein Utility um mal ein einfaches Mesh laden zu können)
- eine leichter zu lesende AGAL(Shadersprache)-Übersetzung
...und sonst noch ein paar unsortierte Utilities.

Alles so einfach und simpel wie es nur geht implementiert, aber für einfache Games sehr brauchbar. Ich habe bis jetzt allerdings immer nur Prototypen geschrieben. Logik steht im Vordergrund, welche Meshes mit welchen Shadern und Texturen dann an Stelle der Platzhalter gerendert werden ist momentan Nebensache. Da lässt sich bei Bedarf auch eine professionellere Grafik-Engine aufsetzen, da das Framework nicht an die Grafik gekoppelt ist.
Wichtig war mir auch: für einfache Low-Level-Sachen kann auch jeweils nur ein kleiner überschaubarer Teil des Frameworks herangezogen werden. Die Abhängigkeiten sind gering gehalten, die Hierarchie eindeutig und die Schnittstellen möglichst Low-Level.

Wirklich ausgereift und vertriebsfertig ist da noch gar nichts, ich bin ständig am umbauen und umsortieren. Anbei ein Screenshot vom Projekt diesen Abends: "Fireflies", 4 Fraktionen versuchen sich gegenseitig zu rammen bis die Lebenspunkte vergehen, um dann vom Ausgangspunkt zu respawnen. Inhaltlich nichts Neues, eher eine Art Stresstest für Steuerung, Kollision und KI unter Stage3D. Auch wenn es nicht so aussieht: alles ist texturiert inkl. Skybox, die Meshes stammen aus dem Spiel "Elite". Das Rendern ist übrigens nicht optimiert (DrawCalls nicht nach Shadern/Texturen/Buffern sortiert, kein Frustum-Culling). Die Nearest-Neighbor-Suche und Jeder-gegen-Jeden-Kollision ist nicht speziell für diesen Fall getrickst und ist nicht räumlich oder strukturell begrenzt.
Gerade auch erfolgreich auf dem Galaxy S3 getestet (AIR-App). Vielleicht kann ich demnächst mal ein SWF irgendwo hochladen.
Dateianhänge
fireflies1.jpg
Antworten