Isoemtrische Levels in 3D

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Nerle

Betreff: Isoemtrische Levels in 3D

BeitragDo, Aug 09, 2007 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich habe eine Frage zur Levelerstellung.

Da unheimliche viele mögliche Spielszenarien auf einen Levelaufbau wie man ihn beispielsweise bei Diablo oder Alien Shooter findet zurückgreifen können, würde ich einen solchen gerne für einige Spielideen nutzen. Da ich aber noch kein Profi bin, nun gerne meine Frage an Euch, wie man einen solchen Levelaufbau realisieren kann?

Hier einige Beispielbilder:


user posted image

user posted image

user posted image


Wie erstelle ich denn solche Levels ganz allgemein recht sinnvoll?
In 2D wäre es vielleicht einfacher zu programmieren, aber dann müsste man auf viele Effekte verzichten, und ich möchte es auf jeden Fall in 3D programmieren, und überlege halt gerade noch wie sich so etwas grundlegend aufbaut. Die Boardsuche habe ich bereits bemüht, finde aber vor allem Threads betreffend 2D-Iso-Grafiken. Das ganze über den Aufbau mit Tiles zu realisieren, kann ich mir nicht recht vorstellen.
Auch das ganze Level als ein einziges Mesh bzw. ein einziges großes 3D-Modell zu erstellen, ist sicherlich nicht die optimalste Lösung, oder?
Eine andere Möglichkeit wäre vielleicht, für den Untergrund eine zweidimensionale (z.B. vorgerenderte) Grafik zu benutzen, und nur die Wände und andere Objekte aus dreidimensionalen Meshes bestehen zu lassen, oder?

Im Grunde wäre auch "Dungeon Keeper" ein geeignetes Beispiel - denn auch dort besteht ja das gesamte Level 3D, auch wenn es vorwiegend aus der Iso-Perspektive benutz wird. Ich würde aber gerne, auch wenn der eigentliche Levelaufbau im Grunde dreidimensional sein soll, auch möglichst viele vorgerenderte 2D-Garfiken benutzen, da diese graphisch einfach detaillierter und sicherlich auch ressourcenschoneneder sind.

Und meine zweite Frage wäre dann natürlich auch, wie man auf einer solchen Levelmap dann bestimmte Gegenstände positionieren kann (zum Beispiel Tische, Stühle, die vielleicht auch bewegbar sind - oder Spawn-Points der Gegner usw.) Question
  • Zuletzt bearbeitet von Nerle am Do, Aug 09, 2007 15:42, insgesamt einmal bearbeitet

ZaP

BeitragDo, Aug 09, 2007 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Da würde ich meine map in eine Textdatei speichern, in Matrix-Form... und dann die Kamera um 45° drehen.

Das könnte so aussehen:

Code: [AUSKLAPPEN]

111111111111111111111
100000000000000000001
100000022200000000001
100000002200000010001
100000000000000010001
100000000000000011111
111111111111111111111


Und dein Spiel würde die Datei dann byte für byte auslesen, für jede 0 ein Boden Tile setzen, für jede 1 ein Wand tile für jede 2 ein Schrank-tile, usw..
Starfare: Worklog, Website (download)

Goodjee

BeitragDo, Aug 09, 2007 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
dein letztes bild ist aber komplett anders...die ersten beiden sind isomaps, das zweite ne 3dwelt, vermutlich frei drehbar...


was von beidem willst du?

BladeRunner

Moderator

BeitragDo, Aug 09, 2007 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur beim letzten deiner Bildbeispiele kann man wirklich sicher sein dass es rein 3D ist.
Die anderen wirken eher wie eine 2d-Projektion mit vorgerenderten Tiles, d.h. Du zeichnest einfach deine Isomap und die objekte darüber, in einzelnen Layern. Die Modelle die für die Figuren/Objekte vonnöten sind wurden vorher aus allen Richtungen in denen sie zu sehen sind gerendert und ins Tileset eingefügt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Nerle

BeitragDo, Aug 09, 2007 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
dein letztes bild ist aber komplett anders...die ersten beiden sind isomaps, das zweite ne 3dwelt, vermutlich frei drehbar...


Stimmt, aber ich dachte, auch die beiden ersten Beispiele wären im Grunde vielleicht auf dieselbe Machart zu realisieren wie jene des dritten Bildes?
Zum Beispiel eine Plane als Boden, 3D-Modelle darauf als Wände, Häuser etc.?

BladeRunner hat Folgendes geschrieben:
Nur beim letzten deiner Bildbeispiele kann man wirklich sicher sein dass es rein 3D ist.
Die anderen wirken eher wie eine 2d-Projektion mit vorgerenderten Tiles, d.h. Du zeichnest einfach deine Isomap und die objekte darüber, in einzelnen Layern. Die Modelle die für die Figuren/Objekte vonnöten sind wurden vorher aus allen Richtungen in denen sie zu sehen sind gerendert und ins Tileset eingefügt.


Das man in 2D mehrere Layers benötigen würde leuchtet mir ein - aber gerade deshalb fände ich es umständlich Dinge zu realisieren wie z.B. dass die Spielfigur stoppt, wenn sie von vorne/unten an eine Wand läuft - jedoch nicht stoppt bzw. hinter ihr verschwindet, wenn sie von der anderen Seite aus auf diese zuläuft. Das sind halt Dinge, die ich mir 3D viel einfacher bzw. weniger zeitaufwendig zu realisieren vorstelle. Wenn jede Wand aus einem 3D-Modell besteht, dann kann die Figur auch dahinter verschwinden, stoppt aber dennoch am Fundament der Wand.
Ausserdem wäre dann das Level komplett drehbar, zoombar usw. - Und auch für die Gegner müsste man nicht jedes einzelne Ani-Frame für jede Richtung zeichnen, sondern einfach 3D-Modelle nutzen.

Wenn ich also alles in 3D verwirklichen möchte, wie mache ich das denn am sinnvollsten?
Ich dachte halt irgendwie an die technische Machart des dritten Bildes, allerdings dann Levels wie im Look von Bild 1 und 2.

Ich bin wie gesagt noch relativer Anfänger mit Blitz3D, und habe gerade noch gar keine Vorstellung, wie ich das am besten realisiere, und würde mir hier mit Hilfe Eurer Tipps erstmal gerne eine Roadmap zusammenstellen, wo es lang geht und in welcher Richtung ich nun weiter lernen sollte.

Im Moment seh ich halt den Wald vor lauter Bäumen nicht: Wenn ich das ganze Level als ein einziges 3D-Modell erstelle (zumindest die Architektur), und dann alle Objekte wie Tische, Stühle etc. als weitere 3D-Modelle hineinstelle, ist das nicht etwas ressourcenfressend? Und auch dann bräuchte ich ja sicherlich eine Positions-Map, in welcher angegeben ist, wo jeder einzelne Tisch, Stuhl etc. steht? Und wie ich diese realisieren sollte, wüßte ich auch momentan auch nicht.

Sinnvoll wäre vielleicht zum Beispiel, einen Editor zu erstellen, in den ich dann einzelne 3D-Modelle (Wandelemente, Objekte etc.) einzeln positioniere, oder?
Aber wie halte ich die Positionen eines jeden dort gesetzten Objekts fest? Dazu bräuchte ich ja wieder eine Art Tile-System, oder?

Goodjee

BeitragDo, Aug 09, 2007 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
für die map ein dim-array, für die objekte types. das wärs eigentlich, und wegen performance solltest du dir bei kleinen maps keine gedanken machen...dann muss man halt mal nachladen, wenn man einen bereich verlässt...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group