Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

20.02.2014, 11:13

Einfacher Dungeon Crawler: Übergang von 2D zu 3D

Hi, zur Zeit arbeite ich an einem einfachen 2D Dungeon Crawler. Dabei verwende ich eine Topdown-View auf ein orthogonales Grid, auf dem sich Objekte befinden, bewegen und Pathfinding sowie Kollisionserkennung in der Ebene ausführen. Das ganze soll allerdings nur als Sprungbrett zur 3D-Darstellung dienen. Für die Map verwende ich Tiles, wobei jede Kachel entweder Boden oder Wand ist (und sich entsprechend auch bzgl. Kollision verhält). Nun plane ich den Übergang zur 3D-Darstellung und habe mir folgendes Überlegt:
  • Zunächst: Ich verwende SDL 2 mit C++11 und einen selbstgeschriebenen Wrapper um Grafiken und Sounds zu verwalten (inkl. Caching). Dabei verwende ich für die Grafiken bereits die Texture-Implementierung von SDL 2.
  • Die 3D-Darstellung beabsichtige ich unter Verwendung von OpenGL zu realisieren. Die Integration in meinen Wrapper sollte keine zu weitrechenden Änderungen darstellen. Die Darstellung der Maps und Entities ändert sich dadurch natürlich komplett.
  • Boden-Kacheln möchte ich durch ein (mit der Textur bespanntes) Quadrat (das auf dem Boden liegt) ersetzen, die Wände durch entsprechende Würfel.
  • Damit wird die Spielfeld weiterhin komplett in einer Ebene liegen, d.h. es wird (zunächst) keine Höhenunterschiede in dem Sinne geben.
  • Für die Kartenobjekte möchte ich übergangsweise zunächst nur ein einfaches Face mit Textur verwenden, wobei das Face der Kamera zugewendet ist. Unterm Strich sollten die Objekte dann so aussehen wie in den frühen Raycast-Engines (z.B. Wolfenstein3D). Als Übergang reicht mir das. Mit polygonbasierten Meshes will ich dann erst später durchstarten.
Nun frage ich mich folgendes:
  • Sollte ich mich zum Rendern direkt mit OpenGL befassen (einige Basics habe ich schon) oder auf eine Rendering-Engine wie Irrlicht setzen?
  • Wenn ich später mit Meshes arbeite, bietet sich eine Import-Library wie assimp an, oder? Soweit ich das überblicke, kann ich dann aus der geladenen Mesh-Struktur entweder meine eigene (oder die Irrlicht-Struktur) erzeugen und (entweder selber oder mit Irrlicht) rendern, richtig?
  • Falls ich mit OpenGL direkt arbeite: welche Version sollte ich dann lernen? Afaik gibt es bezüglich der API einige Unterschiede. Habt ihr da eine Empfehlung für mich?
Ihr merkt, so insgesamt fehlt mir noch der Gesamtüberblick. Ich hatte bis vor einiger Zeit noch überlegt das ganze mittels Raycasting zu realisieren. Davon habe ich mich allerdings verabschiedet, der Implementierungsaufwand erscheint mir nicht gerechtfertigt - und die Erweiterbarkeit hinsichtlich heutiger Möglichkeiten ist nicht gegeben.

Vielleicht noch eine Notiz am Rande: es handelt sich um ein privates 1-Mann-Projekt :)
Danke im Voraus ^^

LG Glocke