3D-Spielfeld Erstellung.
-
Hallo!
Ich bin gerade dabei ein kleines 3D-Spiel mittels C++ und OpenGL zu erstellen.Im Prinzip gibt es nur ein Level, welches ich allerdings von Hand erstellen möchte.
Hierbei handelt es sich um eine Landschaft. Betrachtet aus der third-person-Sicht, wobei die Kamera um einen Punkt rotiert werden, hinein und hinaus gezommt, aber die Kamera nicht verschoben werden können soll. Also eine eher kleine Landschaft.Meine Frage bezieht sich auf das Erstellen einer solchen Map.
Bisher habe ich die Levels beim Erstellen von solchen Spielen einfach generiert oder durch das Aneinanderreihen von Models erstellt.
Z.B.: Schachbrettförmige Spielfelder, Heightmap usw.Hier möchte ich allerdings Gebäude in der Landschaft platzieren können - wobei dies schon vor der Laufzeit, geschehen soll.
Also einige Gebäude sollten statische bzw. dynamische Models sein, welche per Editor in der Landschaft platziert werden können sollen.
Bzw. sollte man Punkte in der Map platzieren können, an denen später die Gebäude-Models eingeblendet werden.Einige sollen von Anfang an direkt angezeigt, andere wiederum erst später an vorbestimmten Positionen platziert werden. Somit fällt die Idee, dass das gesamte Level ein statisches Model ist leider weg.
Dafür suche ich eine Art Level/Model-Editor. Und bevor ich anfange einen eigenen zu schreiben, wollte ich hier fragen ob es soetwas bereits gibt.
Im Prinzip geht es mir darum "Platzhalter" in der Map zu platzieren, an welchen ich später die Gebäude einfügen kann.
Es muss sich auch nicht direkt um einen Level Editor handeln - ein Modellierungsprogramm, welches ein geeignetes Format unterstützt ist mir ebenso willkommen.Natürlich sollte das Format dann allerdings nicht zu kompliziert sein, sodass ich auch einen Loader für selbiges schreiben kann.
Diese Platzhalter sollten auch als Orientierungspunkte für Einheiten, die später im Spiel vorkommen sollen, dienen - was, wenn es sich um einfache Punkte im Raum handelt, hoffentlich kein Problem sein sollte.Fazit: Das Modelformat sollte also eine Landschaft beinhalten können und zusätzlich eine Liste von benutzerdefinierten Punkten, die einfach ausgelesen und für Spiel-interne Zwecke verwendet werden können.
Meine erste Idee war eine Landschaft zu erstellen, als statisches Model abzuspeichern und dann von Hand im Programmcode die Punkte zu definieren, an denen die Gebäude später platziert werden. Bzw. Wegpunkte für Einheiten im Spiel zu definieren.
Das ist allerdings recht aufwendig und Verbunden mit "Platzieren", "Programm starten", "Neu Platzieren", "Programm erneut starten", usw.
Oder Dummy-Models (Die Anhand ihrer Vertice-Anzahl von einem Algorithmus erkannt werden) welche ich im Level-Model platziere, die dann später im Spiel durch die eigentlichen Gebäude ersetzt werden.
Ich würde mich darüber freuen wenn ihr mir Tipps bzgl. des Model/Level-Formats geben könntet.
MfG
-
Du könntet eine Datei machen die etwa so aussieht:
house.obj 5.3 6.9 1.92 car.obj 2.2 6.4 11.2
Dieses Format ist leicht zu parsen, ebenso wie das Wavefront obj Format (welches relativ verbreitet ist). Diese Datei könntest du zur Ladezeit interpretieren, so dass zur Laufzeit nur noch eine Liste (und dazugehörigen die VBOs oder Displaylisten) besteht, die du dann eben noch schnell rendern musst.
-
EOutOfResources schrieb:
Du könntet eine Datei machen die etwa so aussieht:
house.obj 5.3 6.9 1.92 car.obj 2.2 6.4 11.2
Dieses Format ist leicht zu parsen, ebenso wie das Wavefront obj Format (welches relativ verbreitet ist). Diese Datei könntest du zur Ladezeit interpretieren, so dass zur Laufzeit nur noch eine Liste (und dazugehörigen die VBOs oder Displaylisten) besteht, die du dann eben noch schnell rendern musst.
Wenn ich dich richtig verstanden habe, ist das ein Format für die Zuordnung von Koordinaten zu bestimmten Models.
Ich suche aber eine Möglichkeit eben diese Koordinaten zu erstellen.
Also die Models praktisch in einem Model/Level-Editor platzieren und ihre Koordinaten zu speichern. (Danach natürlich auszulesen, aber das Platzieren und Speichern an sich ist, worum es mir geht)
-
Also ein Programm (Editor, ModelingProgramm) das die Koordinaten in solch einem Format abspeichert.
Wie das Format dann selbst aussieht ist mir nicht wichtig, obgleich ich ein einfaches Format begrüßen würde.
Aber mir geht es eben um das Parsen der Koordinaten im Editor in das File.
-
Keiner eine Idee?
Mit welchen Programmen/Dateiformaten erstellen die Entwickler die Levels für professionelle Spiele?
Ich bin sicher, dass viele eigene Level-Editoren schreiben, aber gibt es denn gar keine Dateiformate/Programme die soetwas zumindest im Ansatz können?
-
rgt schrieb:
Mit welchen Programmen/Dateiformaten erstellen die Entwickler die Levels für professionelle Spiele?
Ich bin sicher, dass viele eigene Level-Editoren schreiben, aber gibt es denn gar keine Dateiformate/Programme die soetwas zumindest im Ansatz können?Die aller meisten Entwickler nutzen eigene Editoren und Formate.
-
Interessant wäre eigentlich es schon, mal zu wissen wie die Level Grundstruktur normalerweise so aussieht. Also ich meine Boden, unerklimbare Wände, halt die Levenbegrenzung - sind das alles einfach nur Models?
-
EOutOfResources schrieb:
rgt schrieb:
Mit welchen Programmen/Dateiformaten erstellen die Entwickler die Levels für professionelle Spiele?
Ich bin sicher, dass viele eigene Level-Editoren schreiben, aber gibt es denn gar keine Dateiformate/Programme die soetwas zumindest im Ansatz können?Die aller meisten Entwickler nutzen eigene Editoren und Formate.
Das ist mir klar, deshalb habe ich es ja auch gepostet.
Aber ich habe nun eine Lösung gefunden. Trotzdem danke.