Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 08:11

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Level für feste Pfade
BeitragVerfasst: Sa Mai 16, 2009 14:12 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 03, 2007 14:22
Beiträge: 388
Hi,

ich überlege schon die ganze Zeit, ein Level zu erzeugen, in dem der Spieler eine eingeschränkte Bewegungsfreiheit hat. Man kann mit der Maus den Spieler steuern, er läuft aber dann doch vollkommen alleine. Das ganze passiert in der ersten Person. W,A,S,D oder Pfeiltasten spielen aber absolut keine Rolle. Daher gibt es - einfach mal kurz im Kopf vorgestellt - feste Pfade. Diese Pfade sind nicht ganz so einfach, denn der Spieler schaut nicht immer stur geradeaus sondern blickt auch immer wieder mal in eine andere Richtung (natürlich fest einprogrammiert). Die Überlegung ist folglich, ein Dateiformat zu schreiben oder zu verwenden (falls vorhanden), das die festen Pfade und Blickrichtungen beinhaltet. An sich könnte man dann also für jede Bewegungsmöglichkeit des Spielers die Pfade angeben und idiotisch einfach mit einer Prozedur regelrecht abspielen lassen. Das ist natürlich schön, da man keine wirkliche Engine programmieren muss. Ich denke die Pfaddateien wären hierfür eine gute Lösung. Aber wie würdet Ihr das Level aufbauen ? Ich arbeite sehr gerne mit Cinema4D. Mit dem Programm kann man in einige Formate exportieren - im Extremfall ist eine Programmierung eines eigenen Exporter-Plugins möglich (kenne mich da absolut nicht aus, aber würde mich da auf jeden Fall einarbeiten). Rein theoretisch wären Animationen des Levels für die festen Pfade möglich. Aber der Gedanke ist Schrott, da der Spieler sich in einer 3D-Welt bewegt und man für jeden Frame das ganze Sichtfeld neu beschreiben müsste (wie bei MD2). Wenn man diesen Gedanken weiter fortfüht, könnte man auf die Idee kommen, einfach alles was man benötigt in eine Level-Datei zu packen und den Rest nicht. Denn einige Stellen könnten verdeckt sein, so zum Beispiel Teile der Decke. Das nur zu dem Speicherplatz, aber wie könnte man das Format allgemein sinnvoll aufbauen ? Flächen mit Texturen ? Das gäbe bei Stühlen etc. extreme Probleme. Mir geht es einfach darum, für diesen Zweck die beste Performance rauszuholen. Denn die ein oder andere Berechnung dürfte durch die festen Wege wegfallen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 16, 2009 14:28 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Aber der Gedanke ist Schrott, da der Spieler sich in einer 3D-Welt bewegt und man für jeden Frame das ganze Sichtfeld neu beschreiben müsste (wie bei MD2).

ich würde da genauso rangehen wie bei einer Welt durch die man sich frei bewegen darf. Es gibt da diverse Techniken:
- QuadTree (eher für offene Landschaften)
- BSP-Tree (eher für geschlossene Räume)
- Oct-Tree (für alles)
- Portal-Engine (eher für geschlossene Räume)
Im Wiki findest du sicher mehr Infos zu den Themen.

Für die Pfade selbst würde ich Splines empfehlen. Im wesentlichen definierst du einige Kontrollpunkte und der Computer macht daraus einen schönen runden Pfad. In deinem Fall brauchst du zwei Pfade: einen für die Spielerposition und einen für die Blickrichtung (=Position wo er draufguckt)
Die Kontrollpunkte kannst du entweder selbst setzen während du einmal selbst durchs Level läufst (z.B. Leertaste setzt Kontrollpunkt) oder du definierst die in deinem Modellingprogramm (Cinema4D, Blender, was immer du nimmst...)

Als Dateiformat würde ich irgendetwas nehmen für das es bereits existierende Exporter und Loader gibt. Für einzelne Meshes reicht meist *.3ds, für komplette Welten vielleicht das Format von Quake3 / Halflife? (kenn mich da nicht so aus)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 16, 2009 14:33 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
P.S.: Portale eignen sich wahrscheinlich am besten für deine Situation: http://wiki.delphigl.com/index.php/Portal

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 16, 2009 20:01 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das mit den zwei Pfaden ist genau das, was ich damals in meinem (ziemlich veralteten) Advanced Atom Animator gemacht habe. Allerdings hatte ich keine Kurven verwendet, sondern einfach gerade linien über die ich interpoliert habe.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 16, 2009 21:25 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 03, 2007 14:22
Beiträge: 388
Das ist ein sehr interessantes Projekt, Flash. Nun sind schon einige Sachen klargestellt. Eigentlich bleibt nur noch eine Frage: Für welches Levelformat findet man denn schon möglichst fertige Laderoutinen ? Ich möchte eigentlich drinnen bleiben, daher eignet sich so etwas wie BSP ganz gut. Und gerade was BSP betrifft suche ich schon seit Ewigkeiten nach einem Loader. Außerdem ließe sich BSP sogar ganz gut herstellen, soweit ich weiß: Man exportiert in Cinema 4D als .3ds und lädt diese dann mit dem Hammereditor oder einem anderen und speichert sie ab. Soll angeblich funktionieren, muss das natürlich noch ausprobieren.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 17, 2009 16:41 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
In Blender kannst du z.B. Quake3 Maps exportieren, wofür es ja für jede Sprache loader gibt.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]