Aktuelle Zeit: 22.12.2024, 15:15

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 11.07.2008, 10:44 
Offline

Registriert: 09.07.2008, 13:03
Beiträge: 14
Hallo Community,
ich mache mir momentan Gedanken darüber, wie man sehr große Maps speichern, verwalten und natürlich in ein Game laden kann.
Meine Maps sollen zwar nicht so groß werden wie bei WoW, dennoch ist dieses Spiel ein guter Vergleich dafür was ich suche. Meine Karten sollen wie auch in WoW höhenverläufe und verschiedene Texturen aufweisen.

Wenn ich jetzt aber eine riesige Texturdatei anlege und eine dazugehörige riesige Heightmap, dann sprengt das doch sicher jede CPU / Ram. ?
Ich habe da mal ein paar Experimente mit der Terrain-Renderer Demo gemacht. Und da sind die Frames doch ziemlich eingebrochen. Ich habe allerdings auch noch nicht sehr viel Zeit darauf verwendet, vielleicht habe ich auch nur ein paar doofe Fehler gemacht. Meint Ihr sowas wäre z.B.: mit dem Terrrain-Renderer möglich.

Außerdem wie erstelle ich so riesige Maps? Mit Photoshop alleine komme ich da ja nicht sehr weit ;).
Desweiteren habe ich mir Freeworld3d angesehen. Auch dort ist die Kartengröße begrenzt.

Könnt Ihr mir da ein bischen Helfen? Ich möchte nicht mit meinem Projekt beginnen und dann merken das, dass so nicht hinhauen wird.

Danke,
Max


Nach oben
 Profil  
 
BeitragVerfasst: 11.07.2008, 17:39 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Für sehr große Welten wird vor allem die Präzision der floats, die für die Daten verwendet werden, ein Problem. Du brauchst also ein Tiling Terrain, bei dem das Terrain immer nur Stückweise im RAM ist, sodass immer nur ein Teil der Welt sichtbar ist, und der sollte dann möglichst um 0/0/0 platziert sein, damit auch in den äußeren Bereichen des jeweils sichtbaren die Zahlen möglichst klein bleiben.

Zitat:
Außerdem wie erstelle ich so riesige Maps? Mit Photoshop alleine komme ich da ja nicht sehr weit ;).

Im Zweifelsfall brauchst du später eh einen eigenen Mapeditor, in den kommt das dann rein.




Außerdem, ich hab da so eine Gameengine (unter aktiver Entwicklung) anzubieten und suche noch Hilfe ^^

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 12.07.2008, 19:08 
Offline

Registriert: 09.07.2008, 13:03
Beiträge: 14
Hey,
vielen Dank für deine Antwort, ich habe drüber nachgedacht und mir ein Konzept gemacht.
Ich werde das große Terrain also in mehrere Parts unterteilen. Ein Part besteht immer aus einer Textur und einer Heightmap. Dann werde ich daraus eine Landschaft erzeugen, sowie z.b. in der Terrain-Demo.
Wenn der "Spieler" eine bestimmte Grenze überschreitet, wird er in 000 zurückgesetzt und die Landschaft aus dem nächsten Part generiert.
Frage 1:
Damit das ganze nicht abgehackt aussieht wollte ich immer mehrer Parts aneinander heften, wobei die hinteren aber ohne viele Details dargestellt werden.
Also ganz grob.:
Der Punkt 000 liegt in dem Part mit HD (High Details ^^) dort befindet sich der Spieler, dahinter/davor/daneben befinden sich ebendfalls Terrain-Parts, diese werden allerdings mit Low Details dargestellt.

###### ###### ######
# LD # # LD # # LD #
###### ###### ######
###### ###### ######
# LD # # HD # # LD #
###### ###### ######
###### ###### ######
# LD # # LD # # LD #
###### ###### ######

Überschreitet der Spieler eine Grenze, wird das Raster dementsprechend verschoben.
Das ist ja soweit erstmal kein Problem.

Wie bekomme ich jetzt allerdings ein zuverlässiges Koordinaten System darein.
Die verschiedenen Positionen von Spielern kommen aus einer Datenbank von einem Server. Wenn ein Spieler das Spiel startet soll er sofort an der Stelle wo seiner Spielfigur steht, starten. Ich kann also nicht einfach die Anzahl der Rasterverschiebungen zählen und daraus ein Koordinatensystem errechnen.
Oder mach ich da gerade einen Denkfehler und das ist ganz simpel?

Könnte das sonst so klappen?

Ich war schonmal auf der Website eurer Engine. Ich interessiere mich auch ziemlich dafür, aber das ist momentan zu hoch für mich ;). Ich habe die letzten 4 Jahre ausschließlich mit Java gearbeitet und muss mich jetzt erstmal wieder in die Strukturen von C++ einarbeiten. Desweiteren hab ich mich bis jetzt größtenteils mit Netzwerk und Server Apps. beschäftigt. Außerdem habe ich momentan durchs Studium bedingt nicht so viel Zeit. Ich wäre da also eher ein Hinderniss, als eine sinnvolle Unterstützung.

Danke,
Max


Nach oben
 Profil  
 
BeitragVerfasst: 13.07.2008, 09:30 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Zitat:
Desweiteren hab ich mich bis jetzt größtenteils mit Netzwerk und Server Apps. beschäftigt.

Schade, genau das fehlt atm noch bei uns -.-


Du musst halt ab jetzt Positionen dann sowohl auf dem Server als auch auf dem Client aus 4 Werten zusammensetzen: Der Position des Spielers auf dem derzeitigen Tile, und der Index des Tiles, sodass (3/4/0.5/0.5) zB bedeuten würde, dass der Spieler in der Mitte des Tiles 3/4 steht. Diese Werte musst du dann halt auf dem Client entsprechend in absolute Koordinaten umstellen.

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 13.07.2008, 21:02 
Offline

Registriert: 15.10.2007, 20:08
Beiträge: 31
Hallo allerseits!
Ich habe in etwa das gleiche vor und denke gerade darüber nach wie man soetwas speichert.
Und ich denke wenn man jedes Tile mit einer ganz eigenen Textur belegt würde das bei einer Welt so groß wie bei WoW Schnell sämtliche Festplatten sprengen.
Gibt es irgendwie eine Möglichkeit bei Irrlicht Multitexturing zu verwenden?

Man könnte z.B. alles mit einer Grastextur belegen. Und dann irgendwie (Ich kenne mich mit Multitexturing nicht aus) einen Weg sich da durch schlängeln lassen.

Oder je nach höhe des Terrains unterschiedliche Texturen verlaufen lassen.

Edit:
Mir ist gerade noch ein anderes Verfahren eingefallen.
Man könnte beispielsweise ein einziges Terrain Mesh (kein TerrainSceneNode sondern irgendwie anders halt :) ) laden und mit hilfe von Multitexturing texturieren. Und dann die Objekte wie Bäume, Büsche etc. immer wieder Rasterartig nachladen.


Nach oben
 Profil  
 
BeitragVerfasst: 15.07.2008, 19:33 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Ja, geht beides, ich würde aber nen speziellen TerrainSceneNode mit LOD verwenden.

Das ganze nennt sich Texture Splatting und wird normalerweise per Shader realisiert.

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de