| |||||||
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) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 548
| [Experiment] Raumschiff-KI (3D)
Nun, dann komme ich mal dem Aufruf von Andre nach und poste hier mein aktuelles AS3-Experiment. http://www.dfactor.de/cobra/dogfight/dogfight1.swf ![]() Angefangen hat es mit einer sehr simplen 3D-Engine Anfang des Jahres (Flat-Shading, keine Texturen, nur konvexe Modelle), gecodet in der AS3-Preview Flashumgebung. Statt mich aber weiter um die grafischen Effekte (z.B. Texturemapping) zu kümmern, habe ich danach erstmal ausprobiert, ob ich eine kleine KI (künstliche Intelligenz) hinbekomme, die einen Luftkampf zweier Raumschiffe simuliert. Das Ergebnis seht ihr oben. Bei der "KI" handelt sich um reines Seek- & Flee-Verhalten. Entsprechend der drei im Beispiel zugewiesenen Freiheitsgrade "roll", "pitch" und "speed" ist jedes Objekt in der Lage, sich zu einem anderen Objekt hin- oder wegzudrehen und basierend auf seinem "Erfolg" die Geschwindigkeit anzupassen bzw. zu schießen. Freie User-Kamerasteuerung (alle Freiheitsgrade) ist natürlich auch möglich, jedoch nicht in der Demo aktiviert. Stattdessen folgt die Kamera einem der beiden Schiffe automatisch und versucht etwas Abstand zu wahren. Die Balken zeigen den "Input" an, den die KI an die Steuerung weitergibt. Das Radar zeigt die Szenenobjekte in Relation zur Kamera. Manch einer wird in den beiden Schiffen vielleicht die Modelle aus Braben/Bell's "Elite" wiedererkennen. Die Daten sind auf David Brabens Seite u.a. als VRML veröffentlicht. |
| | |
| | #2 (permalink) |
| nerdig working Registriert seit: Jul 2001 Ort: Hamburg
Beiträge: 5.832
|
ja, ich hab mich schon gefragt, wann der erste elite-klon die welt erblickt. sieht gut aus. freue mich mich schon auf eine weiterentwicklung, elite war so fantastisch, ich habe das tage und nächtelang durchgespielt. hast du schonmal dran gedacht den 3D part auf papervision3D aufzubauen?
__________________ beat it | shake it | fish it | just pudding | love-o-meter flashforum sidebar installieren |
| | |
| | #3 (permalink) |
| x39 Registriert seit: Oct 2004 Ort: St.Gallen, Schweiz
Beiträge: 1.261
|
sehr gute arbeit joeydee. ich hab vorallem frontier elite II (den nachfolger) ewig lange gespielt... Deine engine ist ja erstaunlich schnell. Ich würd jetzt eher sagen: Bastel weiter an deiner Engine, die ist wie ich mir denken kann mehr auf geschwindigkeit optimiert. Auf Texturen kann Elite (und auch frontier) sowieso verzichten, dafür aber ein einfaches shading... Elite muss schnell und genau sein, sonst hat man bei den Dogfights KEINE CHANCE... Geändert von georgem (03-04-2007 um 13:03 Uhr) |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 548
|
Schön zu lesen dass es hier Elite-Fans gibt Ich war damals in der C64-Fraktion. Das schönste war immer sich am nächsten Tag in der Schule zu unterhalten, wer in welchem verlassenen Winkel des Universums welche Abenteuer bestanden hat...Ja, an Papervision habe ich schon gedacht. Ich denke diese Engine ist noch um einiges optimierter als meine, und ich bin sicher sie wäre noch schnell genug für einen Dogfight und sähe dabei um einiges besser aus. Aber es ist schon wahr - bei einem rasanten Spaceshooter hat man sowieso nicht viel Zeit auf Details zu achten, da gehts ums Überleben ![]() Ich bin selbst gespannt ob es nur bei ein paar Demos bleibt oder ob ich mich tatsächlich mal zu einem richtigen kleinen Shooter durchringen kann. |
| | |
| | #6 (permalink) |
| Knopfmaler Registriert seit: Nov 2004 Ort: Essen
Beiträge: 227
|
Schönes Teil. Ich fand Elite auch immer sehr geil. Flash9 hätte wirklich das Potential ein brauchbares Online-Elite zu zaubern. Framerate war bei mit konstant auf 33Fps. (iBook 2Ghz Core2Duo) Da wäre also noch locker Platz für Texturen (Falls du darauf Lust hast, ist aber wohl eine Glaubensfrage, zumal es hier um Elite geht )Es gibt viele Möglichkeiten 3D-Objekte im Code zu organisieren, also denke ich daß auch noch genug Platz/Berechtigung für andere Engines als Papervision sind. Wäre schön wenn es eine Engine speziell für die Anforderungen für Space-Shooter geben könnte. Viele Gruesse =:] Aerks |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Oct 2006
Beiträge: 64
|
ich hatte es ja schonmal im flexforum gefragt aber wo ich grade dein beispiel sehe mit der framerate stell ich die frage halt mal an dich .ich möchte die framerate meiner api beeinflussen können, nur wenn ich wie im folgenden code beschrieben die framerate setze und berechne stelle ich fest das die framerate von 120 nicht erreicht wird. im as2 ging das aber noch ohne problem nur im as3 hab ich probleme woran liegt es bzw wie hast du es umgesetzt? PHP-Code: |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 548
|
Mit Flex werde ich dir kaum weiterhelfen können, da ich in der Flash-Umgebung arbeite. Ich arbeite mit Event-Listenern. Ausprobiert habe ich die beiden Möglichkeiten a) mit einem TimerEvent und b) mit einem enterFrame-Event. Funktioniert eingentlich beides ganz gut, aber letztendlich entscheiden werde ich mich erst wenn ich mal "richtige" Szenen rendern muss (Stresstest sozusagen). Erst dann werde ich sehen ob eine der Möglichkeiten evtl. einen Vorteil bietet. Das weiß ich jetzt noch nicht. Übrigens zähle ich nicht die Frames in einer gegebenen Zeit, sondern messe die vergangene Zeit der letzten Frames. Mit anderen Worten: meine Anwendung sagt nicht "ich konnte in den letzten 1000(+x) ms 42 Frames zählen" sondern "für die letzten 10 Frames habe ich 236ms gebraucht, das ergibt eine durchschnittliche Framerate von 42.37 FPS." Ich glaube zwar kaum dass ich dir damit geholfen habe, ich kann nur sagen wie ich das im Moment mache. |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 548
|
Zeit für ein kleines Update. Hier ein paar Tests mit verschiedene Kollisionshandlern, die eine Game-Engine unbedingt enthalten sollte: http://www.dfactor.de/cobra/collisio...isiontypes.swf Einmal reinklicken damit Flash den Fokus hat. Mit den Tasten 1-6 kann man die Simulation umschaten: 1: Kollision mit gleichen Massen 2: Eine Mine: das erste auftreffende Objekt und die Mine werden vernichtet. (Unspektakulär zwar, aber auch das saubere Entfernen von Objekten ist wichtig) 3: Eine schwere Masse 4: Eine schwere Masse mit Kraftfeld 5: Massenkollision mit Kraftfeldern 6: Massenkollision ohne Kraftfelder Und auch der komplizierteste aller Kollisionshandler ist fertig: Das Andocken an einer Coriolis-Station. Anders als im ursprünglichen Elite wird man bei missglücktem Versuch nicht gleich vernichtet, sondern prallt lediglich ab. Nach der Rotation muss man sich dabei nicht richten. Steuerung: Auch wieder reinklicken für den Fokus. Falls die Station mal nicht zu sehen ist, eine Weile die Leertaste halten, die Kamera sucht sie dann. Maus Drag&Drop: Richtung (Heading, Pitch) W/S: Geschwindigkeit A/D: Strafe links/rechts 2/X: Strafe hoch/runter Q/E: Rollen http://www.dfactor.de/cobra/collision/docking.swf Für beide Demos gilt: sollte die FPS-Rate zu sehr in den Keller gehen, einfach mal das Browserfenster verkleinern. Zielgröße wird am Ende sowieso 800x600 sein, denke ich. |
| | |
| | #11 (permalink) |
| ActionStripper Registriert seit: Nov 2001 Ort: Oldenburg
Beiträge: 3.275
|
hammer! das ist echt ein faszinierendes teil. Lässt sichauch gut steuern. Dann steht ja einem kleinen "Descent"-klon auch nicht mehr viel im weg *gg*
__________________ Design ist AUCH Geschmackssache. |
| | |
| | #12 (permalink) |
| DeRailed Registriert seit: Sep 2006
Beiträge: 321
|
Ich plane gerade auch eine 3D-Engine in Flash – ich wollte schon immer einmal einen Software-Renderer in C++ schreiben. Dabei brauche ich noch einiges an Informationen, insbesondere über Texture Mapping, aber auch generell über Scanline-Renderer. Hast du da was für mich? Ich war mir übrigens unsicher, ob ich im zfx-Forum oder hier posten soll, aber dort hätte ich mich wahrscheinlich blamiert
__________________ Zum Thema Code im Forum posten: Mit den [AS]-Tags bekommt man eine tolle farbige Anzeige, bei der sogar die Zeilennummern eingetragen sind. Wie man aus [AS]-Tags Code direkt ohne die Zeilennummern kopiert: Einfach auf den 'Beitrag zitieren'-Knopf drücken und Spaß mit Copy&Paste haben ;) |
| | |
| | #14 (permalink) |
| DeRailed Registriert seit: Sep 2006
Beiträge: 321
|
Danke André, dein Code ist (wie gewohnt) ziemlich umfangreich. Trotzdem würde ich auch gerne theoretische Papers zu dem Thema lesen. Ich habe zwar schon einiges bei Google gefunden; wenn ihr aber noch gute Links habt: her damit.
__________________ Zum Thema Code im Forum posten: Mit den [AS]-Tags bekommt man eine tolle farbige Anzeige, bei der sogar die Zeilennummern eingetragen sind. Wie man aus [AS]-Tags Code direkt ohne die Zeilennummern kopiert: Einfach auf den 'Beitrag zitieren'-Knopf drücken und Spaß mit Copy&Paste haben ;) |
| | |
| | #15 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 548
|
@klickverbot: leider nein, ich nutze ja nur Polygon-Füllmethoden, kein eigenes Scanline-Rendering mit Texturemapping. Aber wie ich sehe, wird dir ja schon geholfen Auf ZFX hat sich aber doch auch schon der ein oder andere mit Softwarerenderern befasst - schreib denen doch einfach mal ne PM. Denke nicht dass du dich dort blamierst - sowas gehört ja längst nicht mehr zum vorausgesetzten Grundwissen.@Rest: Planeten zum Landen haben erstmal keine Priorität. Werden wahrscheinlich eh zu langsam und zu hässlich. Mit Descent-ähnlicher Technik habe ich mich auch schon befasst (vor allem außerhalb von Flash), aber erstmal möchte ich das bis jetzt Vorhandene in ein kleines Game verwandeln. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |