Registriert: So Mai 11, 2003 10:36 Beiträge: 285 Wohnort: Oldenburg
Programmiersprache: Object Pascal
Hallo, bin neu in sachen OpenGl und habe einige Fragen: ich möchte gerne so ein ingameLevel erstellen, wie kann ich das am besten machen(z.b. wie bei Descent 1-3, ....) was währe da die einfachste möglichkeit ???
MFG Michael Springwald
_________________ MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus
Registriert: So Jan 26, 2003 15:57 Beiträge: 50 Wohnort: Hamminkeln
man nimmt einen 3D Editor wie z.B. Maya oder 3DS und erstellt darin seine Welt und laedt das gane in Delphi. Weiter fortgeschrittene Entwickler schreiben sich auch schon mal nen eigenen Editor.
mfg, Dennis.
_________________ Bush's on a highway to hell with the whole world blind, leading it straight into the flames.
Registriert: So Mai 11, 2003 10:36 Beiträge: 285 Wohnort: Oldenburg
Programmiersprache: Object Pascal
und wie genau ? ich habe jetzt die 3D objekte erstellt(muss das eigentlich sein ?, wenn man nur ein "einfaches" level haben will mit standart sachen wie z.b würfel und so?)
ich habe mir das level so vorgestellt: es werden mehrer Würfel aneinander gereiht, aber wie geht das ?
_________________ MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus
Registriert: So Jan 26, 2003 15:57 Beiträge: 50 Wohnort: Hamminkeln
Du gehst in den Editor und erstellst dir dort dein Level, das ganze speicherst du dann in einem bestimmten FileFormat, welches deine Engine / dein Programm unterstuetzt, und lädst das ganze dann.
Da sich die jeweiligen FileFormate von einander unterscheiden musst du wissen wie dein spezielles Format funktioniert, da gibts im Netz ein paar Quellen, allerdings komm ich da direkt nich so auf die URL, also einfach mal suchen. Wenn du dann weißt, wie das FileFormat aufgebaut ist kannst du eine Laderoutine schreiben, die dir sämtliche Vertices und Farbdaten und Texturkoordinaten liefert. Wenn du die hast musst du das ganze nur noch in einer Routine Darstellen, was nich das Problem sein sollte, da sich das Darstellen an sich nich großartig vom normalen zeichnen unterscheidet und auch nix direkt mit dem Laden zu tun hat.
mfg, Dennis.
_________________ Bush's on a highway to hell with the whole world blind, leading it straight into the flames.
Also ich würde dir wärmstens ans Herz legen, die ausgezeichneten Bomberman Tutorials von SoS durchzugehen. Schon an deiner Fragestellung ist zu erkennen, dass es wenig Sinn hätte hier an dieser Stelle jetzt irgendwelche Vorschläge zu machen (das ist jetzt wirklich nicht böse gemeint - die Tutorials von SoS sind gut und einsteigerfreundlich geschrieben, die Spielwelt ist nicht zu komplex in der Umsetzung - und sobald du dir ein Bild von der ganzen Sache gemacht hast, kannst du auch viel gezielter Fragen stellen).
Selbstverständlich musst du zum rumprobieren keine 3D-Modelle laden, dann solltest du aber zumindest wissen, wie man z.B. selbst einen Würfel zeichnen kann - was du aber ebenfalls in den Einsteigertutorials findest.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wenn du grade erst mit OpenGL angefangen hast, dann wird das Erstellen und Einbinden eines InDoor-Levels (á la Descent & Co) ein recht schwieriges Unterfangen.Zuerst mal mußt du dir ein passendes Tool suchen um den Level zu erstellen.Dazu kannst du entweder ein eigenes Tool schreiben (würde ich dir aber eher empfehlen, wenn du etwas mehr Erfahrung gesammelt hast), oder du nimmst ein bereits vorhandenes Programm um deinen Level zu erstellen.Am besten ein Programm das in ein Format exportieren kann, für das es Delphi-Ladebibliotheken gibt.
Spontan fällt mir da neben 3D-Studio (3DS-Format) noch QERadiant (<a href='http://www.qeradiant.com/' target='_blank'>www.qeradiant.com</a>) ein, den ich dir emfpehlen würde.Das ist der Leveleditor der Quake3-Engine, für deren Levelformat es etliche Ladebibliotheken für Delphi gibt, und das du in deinen Freewareprogrammen laut Carmack auch frei benutzen darfst.Ein großer Vorteil dieses Formates ggü. z.B. nem allgemeinen Format wie 3DS ist die Tatsache das es schon sehr viele für Spiele optimierte Features wie Ligthmaps und PVS (Potentially visible Sets, also ne Art Occlusion Culling) mitbringt.Außerdem ist QERadiant recht einfach zu nutzen, Freeware, und auf der Page die ich erwähnt habe gibts dazu auch jede Menge Tutorials. Arbeite dich also am besten in QERadiant ein, und erstell dann damit deine InnenLevels.Such dir dann ne passende Ladebibliothek für das Quake3-Levelformat, wie z.B. die von <a href='http://www.sulaco.co.za/' target='_blank'>Sulaco</a> die mit vollem Delphiquellcode kommt. Auf <a href='http://www.gametutorials.com' target='_blank'>Gametutorials.com</a> findest du dann weiterführende Ladebibliotheken (allerdings in C++), die auch Lightmaps laden und (wichtig) auch die Kollisionsabfrage implementieren.
Kleine Warnung direkt am Anfang : Dein Unterfangen wird nicht einfach und an deiner Stelle würde ich erstmal etwas einfachers machen, bevor du dich in ein solch schwieriges Projekt stürzt...
Registriert: So Mai 11, 2003 10:36 Beiträge: 285 Wohnort: Oldenburg
Programmiersprache: Object Pascal
das das schwer wird kann ich mir gut vorstellen, aber ich wollte ja auch mit was schweren anfagen:)
ich habe mir das bombermann tutor durchgelesen! da kam ich erst auf die idee;) Und die andren einsteiger tutors habe ich mir auch durchgelsesn..... also ich wollte gerne ersteinmal ohne Level Editor auskommen.... z.b. dachte ich mir es so: man erstellt würfel und die packt man dann aneinander und letzt (wo eine tür sein soll eine wand weg) und so.... wie man ein würfel erstellt weiß ich(da habe ich zwar noch probleme wegen dem 3D Kordinaten kreutzt, aber naja, vielicht kann mir ja jemmand eine funktionen schreiben wie z.b. CreateCube(x,y,z,größe) oder sowas, währe aufjedenfall sehr hilfreich:))
@Son of Satan ich werde mir das Programm mal anschauen, was du erwähnt hast
_________________ MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wenn du nur nen Level bestehend aus Quadern machen willst, dann ist QERadiant vielleicht doch etwas zu komplex, und du solltest dir dann doch lieber nen eigenen kleinen Leveleditor basteln, mit dem du die Quader positionieren und nach deinem Gusto verändern kannst. Denn QERadiant ist ein recht komplexes, dafür aber auch sehr leistungsstarkes und flexibles, Programm mit dem man komplexe Levelgeometrie erstellen und auch beleuchten kann, so dass man mti ein wenig Übung sehr gut aussehende Level erstellen kann.
Nachdem du jetzt aber erwähnt hast, das du nur nen Level aus Quadern bestehend basteln willst, wär's halt doch besser wenn du nen eigenen Leveleditor baust, der sich an dem von NapalmBomber3D orientiert, allerdings (wenns Descent-mässige Level werden sollen) in 3D funktioniert, sprich also auch in die Höhe bauen kann.Mittels Selection (siehe dazu entsprechendes Tut auf meiner Page) kannst du den Nutzer dann die Seiten der Quader selektieren lassen und diese aus- bzw einblenden,so dass du recht einfach nen Übergang zwischen den Quadern machen kannst.
Wie man nen Quader erstellt bzw. anzeigt steht ja auch in meinen Tuts drinne.Du musst dir dann nur noch ne Funktion daraus machen, der du angibst welche Seiten angezeigt werden sollen.
Registriert: So Mai 11, 2003 10:36 Beiträge: 285 Wohnort: Oldenburg
Programmiersprache: Object Pascal
naja. ich kann mir diese funktion noch nicht so recht vorstellen wie sie aussehn sollte.. also jetzt CreateCube(x,y,z:Singel); wie könnte es assuehen ? ich wollte es so machen mit dem level: Meine "Engine" soll cuben erstellen die unterschiedlich Groß sind und wo man dann jede seite einzele Texturen und Türen einbauen kann. jetzt wollte ich gerne wissen wie man sowas ambesten hinbekommt.z.b: das man sich per Pfeiltaste durchs level bewegen kann und mit der Maus den Blickwinkel ändern kann und so... und das man auchn nicht durch wände gehen kann das ist mein eingetliches ziel..... (ich weiß das es nicht so schwer wird(weil ich ja schon einige tutors(von dieser seite gelsen habe) aber ich weiß leider nicht wie ich sowas hinbekommen könnte(solche tutors fehlen hier finde ich:)
eingestigen bin ich in die Spiele entwicklung durch ein erweitern von einer Snake version die ich gefunden hatte.... so will ich eingetlich auch gerne in OpenGl einsteigen(weil ich brauche immer etwas länger).....
und Wie gesagt ich bin absulter einsteiger: ich arbeite zuzeit mit einer OpenGl komponenten samlung: GLXTreem die ist ganz gut, die kann ich auch verändern und so und die ist so wie DelphiX. z.b. übernimmt sie für mich das installiersieren und so ein zeugts
_________________ MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus
Registriert: Sa Nov 02, 2002 18:06 Beiträge: 299 Wohnort: Dresden
Pfeiltasten und Maus? Ich lade etwas Code hoch wenn ich mehr Zeit hab (heute Abend vielleicht) Nicht durch Wände gehen - Kollisionserkennung gibt es viele. Einfach mal GOOGLE durchsuchen.
_________________ "Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"
Registriert: So Mai 11, 2003 10:36 Beiträge: 285 Wohnort: Oldenburg
Programmiersprache: Object Pascal
OK, danke, in goolge habe ich schon 1000 mal danach gesucht, und nicht gefunden. Aber kommentiere den Quellcode gut:) (sonst kann ich damit nichts anfagen)
_________________ MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.