Aufbau von 3D Spielen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Aufbau von 3D Spielen

Beitrag von Rubiko »

Tag,

ihr kennt sicher alle Final Fantasy VII, eigentlich geht es aber auch um die ganzen anderen FF Teile, ich nehm VII mal als Beispiel, da es eins der ältesten ist und deshalb am einfachsten scheint.

Eigentlich ist es eine recht grundlegende und simple Frage und zwar: Wie sind solche spiele aufgebaut? Ich hab leider überhaupt keinen Plan von 3D und allem was dazugehört.

Meine Vermutung: Das ganze findet in einer ganz normalen 3D Welt statt, nur die Kamera nimmt bestimmte Posen ein, ansonsten ist alles 3D. Hintergründe und die Welt auf denen sich die Charaktere bewegen sind vorallem bei älteren Spielen (aufgrund von Grafikanforderungen) vorgerendert. D.h. es ist nichts anderes als jedes andere 3D RPG (WoW und co.), der einzige Unterschied besteht darin, dass die Kamera eine feste position hat (manchmal leicht mitscrollt) und der Charakter sich in diesem Abschnitt, der angezeigt wird bewegen kann. Die Kampfsequenzen sind dabei auch keine Ausnahme, hier wird die Kamera lediglich 'wilder' bewegt und es kommen ein paar Effekte hinzu.
(Bsp. http://youtube.com/watch?v=tr8i1M2UQFw )
Mir ist klar, dass da sehr viel Arbeit dahinter steckt, und ich will es nicht (deswegen spart euch bitte die Kommentare: "Das schaffst du nicht") nachmachen!

Zusammenfassung: Es ist eine ganz normale 3D Welt, nur mit einer Kamera, deren Position fest ist. Ansonsten sind Kollisionsabfragen etc alle normal.

Mir geht es nun darum: Liege ich komplett falsch? Falls ja, berichtigt meine Vermutung. Ich hab leider auch keine Ahnung, wie man sich dieses Wissen aneignen soll, gibt es Bücher dafür, die speziell um solche Fälle gehen?

Vielen Dank im Voraus & Danke fürs Lesen,
Rubiko
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

nach meinem Kentnisstand gehe ich davon aus, dass es durchaus eine 3D-Welt ist,
allerdings würde ich vermuten, dass die Kollisionen und sowas sehr einfach gehalten sind,
eventuell findet so eine Überprüfung garnicht statt,
sondern das ganze läuft simpel über bereiche wo sich die Figur bewegen kann,
so wie z.b. bei alten LucasArt Adventures.

bei den Kampfßenen ist alles nur show, Kollisionen sind hier erstrecht nicht nötig,
nur ne anständige Choreografie.

also, grundsätzlich halte ich deine Annahmen für korrekt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Was Kollisionen angeht, checkt man normalerweise erstmal grob, mit einer sog. BoundingBox (also ein Würfel / Quader um die Figuren drumrum). Wenn diese nicht kollidieren, hat sich das ganze sowieso schon erledigt. Wenn sie doch kollidieren, kann man - sofern nötig - natürlich noch mehr ins Detail gehen, und z.B. tatsächlich prüfen, wo das Schwert den Gegner getroffen hat (wenn man z.B. verschiedene Todesszenen bzw. Arm ab/Kopf ab/etc darstellen will). Da kann man bis zur Polygon-Ebene vorgehen, was natürlich etwas rechenintensiver ist, aber wie gesagt, man checkt das dann eh erst dann, wenn bereits die BoundingBoxen kollidieren. Theoretisch läßt sich auch die Figur dann nochmal in mehrere solcher Boxen unterteilen, also Beine, Arme, Rumpf, Kopf, Schwert, um es feiner zu haben aber nicht bis zu den Polygonen gehen zu müssen.

Wie das jetzt in Final Fantasy VII ist (das wohl keineswegs eins der ältesten, eher eins der älteren ist ;) ), das weiß ich nicht, da ich das Spiel nicht kenne, aber wenn es dort keine Rolle spielt, wo genau das Schwert trifft, sondern nur daß es trifft, dann reicht der Check mit den BoundingBoxen.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

ZeHa hat geschrieben: Wie das jetzt in Final Fantasy VII ist (das wohl keineswegs eins der ältesten, eher eins der älteren ist ;) ), das weiß ich nicht, da ich das Spiel nicht kenne, aber wenn es dort keine Rolle spielt, wo genau das Schwert trifft, sondern nur daß es trifft, dann reicht der Check mit den BoundingBoxen.
FF7 kennt keine Kollision. ^^
Ein Treffer wird stehts nur über den Angriffswert ermittelt, grafische Kollision spielt dabei keine Rolle und findet oft auch nicht stadt, soweit ich das recht in Erinnerung habe.
Zumindest nicht in den Kämpfen.
Wenn ich das richtig in Erinnerung habe (ist lang her das ichs gespielt habe). Sind die Hintergründe gezeichnete bzw. vorgerenderte 2D-Bilder. Die Weltkarte ist eine "echte" 3D-Welt.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Wie kämpft man dann?!

Ist das so ein rundenbasierter Kampf der Sorte "ich klicke jetzt auf 'Gegner eine runterhauen' und das zieht ihm hoffentlich 30% Energie ab"? Falls ja, dann ist es natürlich logisch, daß man dafür keine Kollisionen erkennen muß :) aber es geht hier ja auch generell um 3D-Sachen und Rubiko hat ja auch nach Kollisionserkennung gefragt.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

ZeHa hat geschrieben: Ist das so ein rundenbasierter Kampf der Sorte "ich klicke jetzt auf 'Gegner eine runterhauen' und das zieht ihm hoffentlich 30% Energie ab"? Falls ja, dann ist es natürlich logisch, daß man dafür keine Kollisionen erkennen muß :) aber es geht hier ja auch generell um 3D-Sachen und Rubiko hat ja auch nach Kollisionserkennung gefragt.
Genau das. :mrgreen:
Naja er hat gefragt wie es bei FF7 gemacht wird. Aber generell auf Kollision einzugehen und zu erklären ist nie verkehrt. :allright:
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
odin
Beiträge: 7
Registriert: 01.07.2008 22:01

Beitrag von odin »

FF VII, das waren noch Zeiten. :mrgreen: :allright:
FF7 spielt auf jeden Fall in einer 3D Welt. Ich denke, auch so wie die anderen
FF Teile, halt nur mit etwas schlechterer Grafik.

Bei Golden Sun werden auch Kampfhintergründe verwendet (aber
kein 3D Spiel!).
Bei FF7 ist, denke ich, auch nur ein Hintergrund aber "unten" spielt es halt
doch noch in 3D, da der Spieler ja zum angreifen zu dem Gegner hinläuft.

FF7 arbeitet afaik nicht mit Kollisionen sondern mit reinsten Berechnungen (?), kann aber auch sein, dass ich mich täusche. <)

Lg,
odin.

---

EDIT:
Rubiko hat geschrieben: Mir ist klar, dass da sehr viel Arbeit dahinter steckt, und ich will es nicht (deswegen spart euch bitte die Kommentare: "Das schaffst du nicht") nachmachen!

Ich hab leider auch keine Ahnung, wie man sich dieses Wissen aneignen soll, gibt es Bücher dafür, die speziell um solche Fälle gehen?
Nur nicht zu optimistisch. :mrgreen: :wink:
Naja, das klingt mir ein wenig widersprüchig. Ich bezweifle, dass es Bücher gibt, die studieren wie ein bestimmtes Spiel arbeitet. Da gibt es
wohl eher generelle Bücher zu 3D und Co. Zudem wird das zu den wenigsten kommerziellen Spielen gesagt, mit welcher Programmiersprache sie gearbeitet haben, usw.
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag von Rubiko »

Mir ist nur in letzter Zeit immer wieder aufgefallen, wie gleich vermutet wird, dass jemand ernsthaft vorhat sowas zu machen, z.B. bei Fragen wie "wie programmiere ich einen Compiler?"
Will eben nur eine gewisse Vorstellung, was für eine Arbeit Squaresoft da hatte, und mir scheint ziemlich viel, wenn es nach Berechnungen geht. Immerhin gibt es sehr viele verschiedene 'Maps' und das für jede einzelne zu machen... aber waren ja auch ein Haufen Leute.

In manchen Situationen sieht man noch einen Teil der Map und kann rumlaufen, während ein ganzes Video abgespielt wird, wie kriegt man eigentlich Video+Spiel hin?
Hoffe ihr versteht, was ich meine, da ich direkt kein Beispiel für sowas finde.. ansonsten muss ich mich wohl auf die Suche machen
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Oh ja, mich nervt das auch. Immer gleich diese "vergiß es, das kriegst Du allein eh nicht hin"-Kommentare ;) (zumal es durchaus möglich ist, sowas alleine hinzukriegen - nur halt nicht von jedermann. Das sollte aber kein Grund sein, keine Antworten zu kriegen, schließlich geht's ja erstmal rein um die Theorie. Wenn's danach ginge, dürfte man auch in der Schule nichts mehr beibringen. Wozu Physik unterrichten, wenn in der Klasse wohl eh kein zweiter Einstein sitzen wird...)

Das mit dem Teil der Map und dem Video kapiere ich jetzt nicht ganz, kannst Du das nochmal etwas näher erläutern?
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag von Rubiko »

Also, wenn ich näher darüber nachdenke ist es doch ganz einfach...
Ich rede von ganz normalen Sequenzen/Videos die während des Spiels abgespielt werden. Manchmal ist man dann noch in der Lage auf einem Plateu oder sonst wo seinen Charakter zu bewegen während das Video abgespielt wird. z.B. gibt es eine Szene wo hinten ein Turm einkracht und man selbst sich noch bewegen kann. D.h. im Hintergrund läuft die schöne Sequenz, während zugleich im Vordergrund die Charaktere rumlaufen, die eigentlich nicht so reinpassen.

Ich vermute mal, das Video wird einfach nur im Hintergrund abgespielt während das Spiel noch weiterläuft (sollte ja eigentlich keine Probleme geben), oder?

Kann auch leider gerade kein YouTube Video finden, bei dem das stattfindet..
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Antworten