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

17.05.2012, 19:51

Erzeugung 3D-Spielwelt zu Spielbeginn

Hallo zusammen,

ich plane über die nächsten Jahre ein RPG im Style von Dungeon Master / Eye Of The Beholder / Legend Of Grimrock zu programmieren. Im Moment bin ich dabei, meine Engine Stück für Stück selber zu proggen (C++/DX11) und lese mich durch diverse Tutorials zum Thema Blender (ein einfaches Wallset für die Engine zum Testen ist bereits erstellt) und studiere fleißig Bücher über DX11.

Die Planung zu den Datenstrukturen für das Game liegt im Groben fest, und einfache Primitives habe ich auch bereits gerendert. Nun möchte ich aber den nächsten Schritt angehen: Die Erzeugung der Spielwelt aus einer 2D Tilemap. Wie man das macht ist für mich noch ungeklärt, und ich habe auch kein entsprechendes Tutorial oder Thread im Netz dazu finden können.

Ich möchte mich für die Lösung erstmal ausschließlich auf die Erzeugung der Wände/Böden/Decke beschränken.

Ich stell mir das bisher im Groben so vor:
  1. Tilemap in Datenstrukur laden
  2. Wallset-Meshes laden
  3. Datenstruktur auswerten und Wände, Böden, Decke per Mesh-Instanziierung erzeugen

Zu 1)
Hier sehe ich noch kein Problem.

Zu 2)
Soweit auch für mich machbar


Zu 3)
Wie geht man hier vor? Meine 3D-Tiles in der erzeugten Welt werden 3x3x3 Meter groß sein. Das Wallset ist entsprechend der Größe angelegt (Boden-Mesh ist 3x3 Blendereinheiten, Wand-Mesh ist 3x3, Deckenmesh ist 3x3).

Erzeugt man die ganze 3D-Spielwelt (ein Level) zu beginn? Oder nur den von der Kamera sichtbaren Teil?
Wie definiere ich das absolute Koordinatensystem in meiner 3D-Welt?

Vielleicht kann mir jemand ein paar Denkanstöße geben oder hat einen guten Link mit einer Beschreibung zur Welterzeugung.


Vielen Dank im voraus
Beren

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

2

17.05.2012, 20:19

Zitat

meine Engine Stück für Stück selber zu proggen


Nöööööööööööööööööööööööööööööd, dot, den Link bitte :D

Zitat

ich plane über die nächsten Jahre ein RPG im Style von Dungeon Master / Eye Of The Beholder / Legend Of Grimrock zu programmieren


Warum programmieren bloß alle RPGs? Ok du machst es sogar halbwegs realistisch und kommst nicht gleich mit MMORPG...

Zitat

Erzeugt man die ganze 3D-Spielwelt (ein Level) zu beginn?


Das hängt von der größe deiner Welt ab, die meisten Spiele mit großen Welten halten nur den gerade relevanten Teil im Speicher (bei WoW wäre das vielleicht ein Teil innerhalb der Berge die ja immer als "Grenze" dienen).

Zitat

Oder nur den von der Kamera sichtbaren Teil?


Ich würde (ich weiß auch nicht genau wie es geht) die Welt zerteilen und dann schlicht cullen. Man kann nicht alles rendern man kann aber auch nicht alles in einen Buffer packen.

Zitat

Wie definiere ich das absolute Koordinatensystem in meiner 3D-Welt?


Spielt eigentlich keine Rolle, du kannst z.B. aus deiner Tilemap (wie sieht die eigentlich aus?) die "linke obere Ecke" bei 0 0 0 positionieren und von da aus dann in den positiven oder negativen bereich "bauen".

3

17.05.2012, 21:00

Zitat

Nöööööööööööööööööööööööööööööd, dot, den Link bitte :D


Warum programmieren bloß alle RPGs? Ok du machst es sogar halbwegs realistisch und kommst nicht gleich mit MMORPG...
Dass mein Hobby-Projekt einen immensen Umfang hat, ist mir klar. Ich bin interessiert in der Technik und möchte eine eigene 3D-Engine Stück für Stück modular aufbauen. Beruflich automatisiere ich seit vielen Jahren Industrieanlagen, weiß also Projektvolumen sehr wohl einzuschätzen. Für mein Hobby Projekt gilt: Der Weg ist das Ziel.

Warum RPG? Weil ich nicht auf Ego-Shooter/RTS Games etc. stehe.

Meine Tilemap ist vorerst für die Render-Tests/Worldbuilding-Tests rudimentär. Würde zum Beispiel so aussehen:

#######
# ## #
# ### #
# # #
#######

4

17.05.2012, 21:13

Zitat

Nöööööööööööööööööööööööööööööd, dot, den Link bitte :D
:thumbsup:

Zitat

Das programm, dass ich eben geschrieben hab ließ sich ohne einen einzigen Fehler kompilieren und und funktioniert so wie es soll. Das macht mir Angst, da ist was Faul

5

17.05.2012, 21:23

Toll, wie man sich über einen Anfänger im Bereich Spieleprogrammierung lustig machen kann. :(

Läuft das in diesem Forum immer so ab?

Vielleicht findet sich ja noch jemand, der meine Fragen ernsthaft BEANTWORTET ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Beren« (17.05.2012, 21:30)


6

17.05.2012, 23:47

Kennst du den Link denn schon?
Man macht sich auch nicht über dich lustig, auch wenn der Eindruck entsteht.
Es liegt wohl an der Häufigkeit von den Leuten die Engines programmieren wollen, dass man nun ein wenig überreagiert.

MfG
Check

Beiträge: 721

Wohnort: /dev/null

Beruf: Software-Entwickler/Nerd

  • Private Nachricht senden

7

18.05.2012, 01:00

@DeKugelschieber: Wie man sein Koordinatensystem hält, macht bei großen Welten sehr wohl einen Unterschied.
@Beren: Die meisten, die hier rumtollen, haben weniger Kenntnisse. Warum hier alle immer diesen dämlichen "Write Games, not Engines" Link werfen, wenn doch eindeutig ist, dass der Autor sich bereits entschieden hat, weiß ich allerdings auch nicht. Sieht meiner Meinung stark nach Klugscheißerei aus, aber wie dem auch sei. Und das was tobi98 da oben geschrieben hat, ist auch unnötig.

Was für Daten speicherst du in der 2D Tilemap?

8

18.05.2012, 09:07

@Checkmateing: Welchen Link?

@Supreme: Die 2D Tilemap enthält vorerst nur zwei Informationen: Mauer und Begehbar. Ich möchte Step für Step beginnen und weitere Funktionen nach und nach nachrüsten.

Also mein erstes Ziel: Rendern eines Dungeons mit dem von mir erstellten Meshes, ohne Texturen etc. Das kommt danach.

Wie geht man vor? Bau ich mir aus den Informtionen der Tilemap ein riesiges World-Mesh zusammen? Oder killt sowas die Performance?

Für später stelle ich mir Maps in einer Grösse von 48x48 Feldern vor.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Beren« (18.05.2012, 09:15)


babelfish

Alter Hase

Beiträge: 1 222

Wohnort: Schweiz

Beruf: Informatiker

  • Private Nachricht senden

9

18.05.2012, 09:18

@Beren
Sie beziehen sich auf diesen Artikel: http://scientificninja.com/blog/write-games-not-engines

Der Inhalt des Artikels ist wertvoll und gut, und ich selbst versuche ihn zu befolgen.
Er bezieht sich meiner Meinung nach aber mehr auf Leute, welche die Engine um ihr Spiel "unbewusst" aufbauen.

Wenn du das machst, um die Techniken zu lernen ist dein Weg nicht falsch. Wenn du einfach das Spiel als Ergebnis anstrebst, macht es Sinn sich an die Ratschläge aus dem Artikel zu halten.

10

18.05.2012, 09:28

C-/C++-Quelltext

1
// Guter Artikel



Wie schon geschrieben, bin ich interessiert an der Technik. Und nebenbei soll daraus ein Dungeon-Crawler entstehen.

Aber der Artikel beantwortet leider nicht meine Frage. Ich wollte hier auch nicht diskutieren, ob ich eine Engine selber schreiben soll oder nicht...

Werbeanzeige