[Projekt] CyberDive (MARPG)

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
waigie
Beiträge: 82
Registriert: 20.05.2009, 19:37

Re: [Projekt] CyberDive (MARPG)

Beitrag von waigie »

Ich geh davon aus das die Plattentektonik bei ihm auch nur sehr schleppend vorangeht, ähnlich wie auf der Erde ich hab in meinen 23 Jahren Spielzeit keine nennenswerte Veränderung der Plattenanordnung und Form mitbekommen ;)

Vielmehr denke ich braucht er die Werte um zu errechnen an welchen Stellen sich Gebirge oder Gräben befinden.
IlikeMyLife
Establishment
Beiträge: 212
Registriert: 08.05.2011, 09:59
Benutzertext: Feel Free

Re: [Projekt] CyberDive (MARPG)

Beitrag von IlikeMyLife »

"Bam liegt in der Nähe des Randes der Eurasischen Platte, auf die sich die Arabische Platte mit ca. 3 cm pro Jahr zubewegt. Dadurch entstehen gewaltige Spannungen im Untergrund, die sich von Zeit zu Zeit durch Erdbeben abbauen."

Quellt: http://www.agenda21-treffpunkt.de/daten ... ktonik.htm

3cm plattenbewegung * deine 23 Jahre = 69 cm bewegung in derzeit
Stimmt :D macht sich tatsächlich nicht bemerkbar :D
condor
Beiträge: 14
Registriert: 31.07.2011, 14:52

Re: [Projekt] CyberDive (MARPG)

Beitrag von condor »

Sehr schönes Projekt,

hab ich was überlesen oder hast du bisher nichts über die softwaretechnische Seite gesagt?
Mit was programmierst du, eigene oder vorhandene Engine, wenn eigene Engine, dann wie lange entwickelst du daran und auf welchem Stand befindet sie sich.
Das wäre für mich auch interessant zu hören.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

IlikeMyLife hat geschrieben:3cm plattenbewegung * deine 23 Jahre = 69 cm bewegung in derzeit
Stimmt :D macht sich tatsächlich nicht bemerkbar :D
Das ist genau der Punkt ;) Meine Platten bekommen einen Drift von maximal 20cm pro Jahr, damit können Platten also maximal 40cm pro Jahr auseinanderdriften, mit der Eigenrotation vielleicht noch ein wenig mehr. Die einzigen Stellen, an den man das merken würde, wären Ozeanspalten oder Hochgebirge und selbst dort nur minimal. Ich benutz die Werte also tatsächlich nur um die Kräfte zu berechnen, die zwischen den Platten wirken.

Nein, ich habe bis jetzt tatsächlich noch nichts über die Softwaretechnik gesagt. Der einzige kleine Hinweise war darin versteckt, dass nach 2400x1200 Gridauflösung Mogre versagt :D
Den ersten Prototypen, wenn nicht sogar das ganze Spiel, werde ich in C# entwickeln, unter Benutzung von Mogre und PhysX. Damit kenne ich mich momentan am besten aus und damit entwickel ich am schnellsten.
Aber insbesondere, wenn ich später eine MMO Variante davon schreiben will, werde ich auf eine C++-Engine umsteigen. Aber das ist noch Zukunftsmusik.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] CyberDive (MARPG)

Beitrag von Chromanoid »

Artificial Mind hat geschrieben:Aber insbesondere, wenn ich später eine MMO Variante davon schreiben will, werde ich auf eine C++-Engine umsteigen. Aber das ist noch Zukunftsmusik.
Warum? Rechnest du mit Performance-Problemen?
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Chromanoid hat geschrieben:
Artificial Mind hat geschrieben:Aber insbesondere, wenn ich später eine MMO Variante davon schreiben will, werde ich auf eine C++-Engine umsteigen. Aber das ist noch Zukunftsmusik.
Warum? Rechnest du mit Performance-Problemen?
Ja. Auch insbesondere beim Speichermanagement von so vielen Spielern ist ein GC nicht das Angenehmste. Aber für die Multiplayer Variante und auf alle Fälle für den Prototypen sollte C# gut funktionieren und mich von vielen lästigen Pitfalls befreien.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] CyberDive (MARPG)

Beitrag von Chromanoid »

Also gerade für die Server würde ich an deiner Stelle auf eine flexible dynamische Sprache setzen. Es kommt natürlich ein bisschen darauf an, was so für Interaktionen zwischen Spielern untereinander und mit der Welt möglich sind... Eve Online nutzt bspw. Stackless Python, viele Social-Games mit Echtzeit-Spielinstanzen nutzen Java/den SmartFox-Server usw. Aber du hast ja selbst gesagt, dass das ganze eh Zukunftsmusik ist, von daher lohnt sich eine Diskussion noch nicht :).
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Und man läuft bei soetwas nicht in Performance-Fallen? Ich werde später nicht wenig AI Berechnungen haben und dadurch, dass auch viele Dinge während des Spieles prozedural errechnet werden müssen, habe ich ja nicht unwesentliche Anforderungen, oder?

Ein anderer Ansatz wäre es, den Server in Rollen aufzuteilen, sodass eine Rolle von mehreren realen Servern angenommen werden kann und jeder reale Server mehrere Rollen annehmen kann. Die Rollen "AI" und "Content-Generation" wären dann über C++-Module implementiert, um die Performance zu gewährleisten, und die restlichen Rollen sind für bessere Flexibilität in C# oder sonst irgendetwas geschrieben.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] CyberDive (MARPG)

Beitrag von Chromanoid »

Wenn du das ganze horizontal skalierbar machst, muss der Einsatz von C++ schon wesentlich mehr Performance bringen damit es sich überhaupt lohnt den Aufwand zu treiben extra C++-Module zu entwickeln.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Also erstmal einfach ausprobieren, ob es tatsächlich zu den Problemen kommt und ob C++ sie lösen kann.

Ohne mich in irgendeine "managed-unmanaged-bashing"-Geschichte zu verwickeln: Meiner Erfahrung nach ist vernünftig geschriebenes C# im Release Modus nicht wesentlich langsamer als C++, außer man hat viele trigonometrische Berechnungen. Und der GC von C# hat mir bis jetzt auch noch nie Probleme gemacht und ich habe schon so einige GB Ram beansprucht. Viele Grenzen, die ich mit C# erreiche, sollten also auch ungefähr die Grenzen von C++ sein (performancetechnisch).

Wobei ich gerade überlege, ob ich nicht vielleicht mit mixed-mode cli ein winziges C++ Modul für Noise Berechnung anlegen sollte. Die Noise-Auswertung schlägt momentan mit über 50% der Rechenzeit der Reliefmap zu. Oder ist PerlinNoise (2D/3D) _immer_ so langsam?
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] CyberDive (MARPG)

Beitrag von Chromanoid »

Keine Ahnung :) Sind das denn überhaupt Sachen die zur Laufzeit/während des Spiels besonders schnell gemacht werden müssen? The Computer Language Benchmarks Game ist zum Performance Vergleich ganz interessant. Aber du solltest dich wirklich erst mal nicht mit Performance beschäftigen. Was am Ende der Flaschenhals ist, wirst du höchstwahrscheinlich erst am Ende merken... Direct3D hat afaik übrigens eine Art Servermodus (siehe http://msdn.microsoft.com/en-us/library/gg615082.aspx) - vielleicht kannst du damit ja was anfangen.
Zuletzt geändert von Chromanoid am 30.08.2011, 14:17, insgesamt 1-mal geändert.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Die Reliefmap sicher nicht. Ich kann auch noch absolut nicht vorhersagen, welche Art von Randomness ich zur Laufzeit am meisten brauche.

Was halt definitiv zur Laufzeit passieren muss sind insbesondere, aber nicht ausschließlich: Questgenerierung, politische Simulation, gesellschaftliche Simulation, Flora- und Fauna, Itemgenerieung, AI, Wetter (, vll. Naturkatastrophen)
Dabei lassen sich große Teile sicher vorgenerieren, aber es gibt auch sicher nicht zu vernachlässigende Anteile, die Laufzeitinformationen benötigen.

EDIT: gute Idee, ich mache erstmal weiter und habe Performance nur im Hinterkopf ;)
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] CyberDive (MARPG)

Beitrag von Chromanoid »

Bezüglich der Simulation von gesellschaftlichen Ereignissen etc. könnte man mal überlegen sich Algorithmen für CEP anzuschauen.
edit: Bei CEP handelt es sich ja eher um ein Konzept. Ein Algorithmus dafür wäre z.B. der Rete-Algorithmus.
Zuletzt geändert von Chromanoid am 30.08.2011, 14:26, insgesamt 3-mal geändert.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Sieht vielversprechend aus, danke :)
Schwarmsimulation werde ich mir wenn die Zeit kommt, auch nochmal zu Gemüte führen.
Ich werde hier in Aachen dieses Semester die Vorlesung "Introduction to AI" hören, vielleicht lassen sich daraus auch noch wertvolle Erkenntnisse ableiten.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Die Idee von gestern Nacht scheint Früchte zu tragen:
3D Planetenrelief mit Nord- und Südkappe, ohne Eisschild
3D Planetenrelief mit Nord- und Südkappe, ohne Eisschild
Erläuterungen:
  • Links ist der Nordpol, Rechts der Südpol
  • Erste Zeile ist die Reliefkarte, zweite Zeile die Einbettung in das Planetenmodell
  • Der Eisschild ist noch nicht berücksichtigt, der ergibt sich erst beim Klima
  • Die Höhen sind im üblichen x50-Faktor
  • Die unterste Zeile zeigt die Nahtstelle in Wireframe
  • Alle Reliefkarten sind jetzt in der richtigen Größe (Mittelband: 40 000km x 13 333km, Polkappen: 6 666km Durchmesser)
Die Nord- und Südpolkarten sind auch erstmal mit nicht so viel Mühe wie die Reliefkarte für die mittleren Breiten erstellt worden.

Protip: 2MB hochladen per ISDN-Geschwindigkeit über Handy-Bridge ist nicht zu empfehlen
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Nachdem ich mich erste Stunden in das Thema Klima eingelesen habe, könnte ich eine Lösung für mein Kreisabhängigkeitsproblem haben:
Ein ganz strikter Top-Down-Ansatz. Ich versuche also, alle Klimaeinflüsse zu identifizieren und sortiere sie quasi nach der Stärke ihres Einflusses. Es werden dann nach und nach alle Einflüsse berechnet, wobei jeweils nur die Klimaeinflüsse auf Abhängigkeiten getestet werden, die eine höhere Stärke haben.

Stärkster Klimaeinfluss: Die Sonne.
Die Stärke der Sonneneinstrahlung hängt direkt mit dem Winkel zusammen, unter der die Strahlen auf die Erde treffen. Je steiler der Winkel, desto mehr Energie trifft pro Fläche auf die Erde, desto stärker kann die Erde dort erwärmt werden. Die Erdachse steht dabei nicht direkt senkrecht auf der Erdumlaufbahn, sodass Bereiche der Erde an verschiedenen Positionen im Jahr einen unterschiedlichen Winkel zur Sonne haben. Dieser Effekt heißt Ekliptik und beträgt bei unserer Erde ca. 23,4° Achsenabweichung zur Normale.

Zweitstärkster Einfluss: Planetarische Zirkulation.
Die Nord- und Südpole sind am kältesten, dort sinkt also kalte Luft ab. Die Äquatorregionen sind am wärmsten, dort steigt warme Luft auf. Dies ergibt einen Luftkreislauf. Allerdings erwärmen sich die kalten Winde von den Polen, sodass diese bereits bei ca. 60° wieder aufsteigen. Die warmen Lüfte der Äquatorregionen kühlen auch schneller wieder ab, sodass diese bei ca. 30° wieder absinken. Dazwischen gibt es noch ein gegenrotierendes System. Aufgrund der Corioliskraft werden Winde auf der Nordhalbkugel nach Rechts und auf der Südhalbkugel nach Links abgelenkt.
Die Zone in der Äquatorregion heißt ITC, die bei 30° STJ und die bei 60° PFJ. Die genaue Lage der Zonen schwankt abhängig von der Neigung zur Sonne (Jahreszeitenabhängigkeit). Dabei wird die ITC quasi etwas von Landmassen "angezogen", da diese die Sonnenenergie schneller wieder abstrahlen.

Zusammen ergibt das folgende Karten:
Klimacollage
Klimacollage
Erläuterung:
  • Links:
    • Plattentektonik
    • Reliefkarte
    • Reliefkarte mit Plattengrenzen und Hotspot-Vulkanen
    • Zenit der Sonne in einem Jahr (von links Januar, bis rechts Dezember)
  • Rechts:
    Zirkulationsbereiche und Winde, von Oben nach Unten: März, Juni, September, Dezember
    • Rot: Innertropische Konvergenzzone (ITC)
    • Gelb: Subtropen-Jetstream (STJ)
    • Türkis: Polarfront-Jetstream (PFJ)
    • Weiß: Windrichtung (keine Stärken)
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] CyberDive (MARPG)

Beitrag von Chromanoid »

Sieht ziemlich abgefahren aus. Realisierst du das ganze eigentlich mit Heuristiken und hast du spezielle Simulationsverfahren? Mich würden mal deine Quellen interessieren. Wie sieht es mit Planeten aus, deren Rotationsachse zur Sonne zeigt, oder Planeten mit mehreren Sonnen etc.?
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Chromanoid hat geschrieben:Sieht ziemlich abgefahren aus.
Danke :)
Chromanoid hat geschrieben:Realisierst du das ganze eigentlich mit Heuristiken und hast du spezielle Simulationsverfahren?

Du bist mir schon dicht auf der Spur. Mein "Trick" ist es, sich die natürlichen Prozesse anzugucken. Wenn ich die Ursachen für Phänomene kenne, dann versuche ich diese mit so wenig Aufwand wie möglich, so plausibel wie möglich zu simulieren oder zu errechnen. Dabei orientiere ich mich an den natürlichen Prozessen, nehme aber eigene Anfangsbedingungen.

Zum Beispiel die Plattentektonik:
Die Meisten nehmen es als gegeben an, dass es die tektonischen Platten gibt. Der genaue Entstehungsprozess und die genauen Bewegungen sind noch weitestgehend unbekannt, der Plattendrift basiert wahrscheinlich auf Konvektionsströmungen im inneren der Erde, aber da bekommt man auch keine genaueren Daten. Wenn man allerdings die Daten der Platten hat, dann sind die darauf basierenden Effekte ziemlich klar: Platten schieben sich ineinander, übereinander und auseinander und bilden dabei Meeresspalten, Gebirge und Vulkanismus.
Die Anzahl, Form und Position der Platten errechne ich also zufällig. Dabei habe ich einige plausible Schranken für die Anzahl (sagen wir n) eingebaut. Die Form und Position generiere ich dann wie folgt: ich nehme mir n zufällige Punkte auf meiner Karte und errechne deren Voronoi-Diagramm (mit ein paar kleinen Tricks, damit die Voronoi-Zellen nicht unbeschränkt sind). Jede Zelle ist dann eine Platte. Die ist allerdings noch relativ langweilig, also habe ich jede Kante noch rekursiv unterteilt, bis diese kleiner als ca. 350km sind. Das Verfahren habe ich quasi "erraten", es gibt keinen Grund warum die Platten so generiert werden müssen. Allerdings liefert es vernünftige Ergebnisse und da niemand genau weiß, wie die entstehen, ist das momentan auch noch vollkommen legitim.
Jetzt habe ich also alle Platten mitsamt ihrer Kanten und Form. Da auch die Geschwindigkeiten unbekannter Herkunft sind, werden diese vollkommen zufällig (innerhalb gewisser Grenzen) generiert. Ich habe also quasi aus dem Nichts meine Anfangbedingungen geschaffen, die auch niemand sonst erklären konnte.
Die Entstehung von Gräben und Gebirgen ist nun allerdings wesentlich genauer bekannt, also kann ich mich dort besser an den realen Sachverhalten orientieren (zB. Konvergenz zweier kontinentaler Platten => Faltengebirge).
Chromanoid hat geschrieben:Mich würden mal deine Quellen interessieren.

http://de.wikipedia.org/wiki/Plattentektonik
http://de.wikipedia.org/wiki/Gebirgsbildung
http://de.wikipedia.org/wiki/Klima
+ alle Folgelinks bis einschließlich Tiefe 3 :D

Ne im Ernst, ich habe mich zu über 95% an Wikipedia orientiert. Ich versuche die Sachverhalte und Mechanismen zu verstehe und denke mir dann eigene Approximations- und Simulationsverfahren dazu aus.
Chromanoid hat geschrieben:Wie sieht es mit Planeten aus, deren Rotationsachse zur Sonne zeigt, oder Planeten mit mehreren Sonnen etc.?
Mein Algorithmus sieht vor, zuerst eine Oberfläche zu generieren, dann ein Klima und daraus Geozonen. Jede einzelne Geozone bekommt dann einen Generationsalgorithmus für die genaun Oberflächenstrukturen, Verhältnisse, Besonderheiten etc. Dieses allgemeine Prinzip ist auf so gut wie alle Planeten anwendbar.
Die bereits implementierten Erzeugungsalgorithmen basieren allerdings auf einigen Annahmen. Zu allererst braucht der Planet Wasser und eine Plattentektonik, welches beides bei vielen Planeten nicht gegeben ist. Dann benötige ich entweder eine Ekliptik von sagen wir maximal 45°, da es sonst nicht zu einer ITC-Zone kommt und die Windverhältnisse sich irgendwie anders ergeben müssen. Außerdem muss die Rotationsgeschwindigkeit im Verhältnis zur Größe ähnlich wie bei der Erde sein, da es sonst weder den PFJ noch den STJ gibt. Je genauer ich also bekannte Klimaphänomene betrachte, desto ähnlicher müssen die Verhältnisse der, der Erde entsprechen. Da ich momentan einen erdähnlichen Planeten haben will (die genauen Storydetails dazu sind noch unklar), reicht mir das. Wenn ich später Lust habe und/sowie genügend positive Resonanz von euch kommt, kann ich ja meine Algorithmen entsprechend anpassen, dass ich auch elementar andere Planeten erzeugen kann. Ich hatte heute z. B. auch mit der Idee gespielt mehrere Monde zu haben, welche dann natürlich alle Einfluss auf die Gezeiten hätten. Das führt allerdings zum N-Körper-Problem und ich habe (noch) keine Ahnung wie deren Umlaufbahnen aussehen.



Zu meinem Fortschritt:

Momentan suche ich an einer Möglichkeit das globale Förderband (zu dem z. B. auch der Golfstrom gehört) zu simulieren. Dies erweist sich als sehr trickreich, da die genauen Prozesse ziemlich unbekannt sind (die Elemente Konvektion, Auftrieb/Abtrieb, Wärmeausgleich, Dichteausgleich, Salzkonzentrationsausgleich sind zwar bekannt, die genaue Form der Ströme lässt sich allerdings nicht einfach so daraus ableiten). Ich denke es wird darauf hinauslaufen, dass ich Karten in der Größenordnung von 400x200 oder 800x400 erstelle und auf denen eine kleine Flüssigkeitssimulation laufen lasse. Ich bin mir über die Details noch nicht im Klaren. Einfach ignorieren kann ich dieses Phänomen aber auch nicht, es stellt (nach dem Sonneneinfluss und der globalen Zirkulation) den drittgrößten Klimafaktor dar.
Morgen bin ich auch erstmal den ganzen Tag unterwegs, vielleicht bekomme ich ja den Kopf frei und mir eröffnet sich eine einfachere Lösung. Heute habe ich einen neuen Laptop mit einer GTX 560M bekommen, sowie 120Hz FullHD mit NVidia Shutterbrille. 3D-Planet, ich komme :D - bzw. :ugeek:
Benutzeravatar
joeydee
Establishment
Beiträge: 1224
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: [Projekt] CyberDive (MARPG)

Beitrag von joeydee »

Deine Windpfeile zeigen eigentlich schon den richtigen Ansatz:
- einzelne Zellen, die einen Richtungsvektor haben
- jede Zelle kann einen Hotspot beinhalten (auf- oder absteigende Strömung)
- über mehrere Iterationen:
-- die Richtungsvektoren n zufällig ausgewählter Zellen jeweils mit den Richtungsvektoren der Nachbarn mitteln
-- wenn eine Nachbarzelle einen Hotspot beinhaltet, wird außerdem eine dorthin gerichtete Strömung (absteigend) oder davon weg gerichtete Strömung (aufsteigend) addiert.
-- wenn eine Zelle eine Küstenlinie enthält, lass die Normale mit in die Richtung einfließen
-- entsprechend kannst du noch Wassertemperatur, Salzgehalt etc. als Information mittransportieren, jeweils gewichtet am Richtungsvektor der Nachbarn, dann hast du deine Klimafaktoren für jeden Punkt.

Hotspots platzierst du erstmal zufällig, ggf. kannst du wissenschaftliche Erkenntnisse für geeignete Kandidaten einfließen lassen (Klimazonen, Landmassen), aber das Ganze ist ja sowieso so komplex, dass "zufällig" wohl ausreicht.

Ich denke, Tiefenströmungen kannst du auch erstmal ignorieren, das dürfte auch so bereits ein glaubwürdiges Bild ergeben. Ansonsten kannst du einfach die Hotspotströmungen in der Tiefe umkehren und eine entsprechend andere Küstenlinie (Kontinentalschelf) voraussetzen. Interessant wird es, wenn das Schelf dann zusätzlich für neue aufsteigende Hotspots verantwortlich wird...

Hab mir mal erlaubt wenigstens das mit den Hotspots auf die Schnelle in Flash auszuprobieren, hier der AS3-Prototyp falls du an Details interessiert bist.

Code: Alles auswählen

import vr.Vector3D;

var w:int=40;
var h:int=20;
var drawSize:Number=15;

var cells:Array=new Array(h);
generateField();
placeHotspots();
stage.frameRate=60;
stage.addEventListener(Event.ENTER_FRAME,mainloop);

//-------------------------------

function generateField(){
	for(var py:int=0;py<h;py++){
		cells[py]=new Array(w);
		for(var px:int=0;px<w;px++){
			cells[py][px]={
				direction:new Point(0,0),
				hotspot:0
			};
			cells[py][px].direction.normalize(1);
		}
	}
}

function placeHotspots(){
	for(var i:int=0;i<20;i++){
		var px:int=Math.floor(Math.random()*w);
		var py:int=Math.floor(Math.random()*h);
		cells[py][px].hotspot=(Math.random()-0.5)*20;
	}
}


function mainloop(event:Event){
	for(var i:int=0;i<200;i++){
		var px:int=Math.floor(Math.random()*w);
		var py:int=Math.floor(Math.random()*h);
		updateCell(px,py);
	}
	render();
}

function updateCell(px,py){
	var cell:Object=cells[py][px];
	var nb:Object;
	var r:int=2;
	var rq:Number=Math.pow(r*2+1,2)
	for(var dx:int=-r;dx<=r;dx++){
		for(var dy:int=-r;dy<=r;dy++){
			var rx:int=(px+dx+w)%w;
			var ry:int=py+dy;
			if(rx>=0 && rx<w && ry>=0 && ry<h)updateBy(cell,cells[ry][rx],dx,dy);
		}
	}
	cell.direction.normalize(1);
}

function updateBy(cell:Object,nb:Object,dx,dy){
	var f:Number=1/(Math.sqrt(dx*dx+dy*dy)+1);
	cell.direction.x+=nb.direction.x*f;
	cell.direction.y+=nb.direction.y*f;
	if(nb.hotspot!=0){
		cell.direction.x-=nb.hotspot*dx*f;
		cell.direction.y-=nb.hotspot*dy*f;
	}
}

function render(){
	var sh:Number=drawSize/2;
	this.graphics.clear();
	for(var py:int=0;py<h;py++){
		for(var px:int=0;px<w;px++){
			var cell:Object=cells[py][px];
			var cx:Number=px*drawSize+sh;
			var cy:Number=py*drawSize+sh;
			if(cell.hotspot!=0){
				if(cell.hotspot<0)this.graphics.lineStyle(2,0xCCCCFF);
				if(cell.hotspot>0)this.graphics.lineStyle(2,0xFFCCCC);
				this.graphics.drawCircle(cx,cy,Math.abs(cell.hotspot));
			}
			this.graphics.lineStyle(1,0xCCCCCC);
			//this.graphics.drawRect(px*size,py*size,size,size);
			this.graphics.drawCircle(cx,cy,1);//+cell.direction.x*sh//+cell.direction.y*sh
			this.graphics.moveTo(cx,cy);
			this.graphics.lineTo(cx+cell.direction.x*drawSize*1.5,cy+cell.direction.y*drawSize*1.5);
			
		}
	}
}
joggel

Re: [Projekt] CyberDive (MARPG)

Beitrag von joggel »

My 2 cent:
Schönes Projekt und die Bilder sehen auch schon gut aus!
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

joeydee hat geschrieben:Deine Windpfeile zeigen eigentlich schon den richtigen Ansatz:
- einzelne Zellen, die einen Richtungsvektor haben
- jede Zelle kann einen Hotspot beinhalten (auf- oder absteigende Strömung)
- über mehrere Iterationen:
-- die Richtungsvektoren n zufällig ausgewählter Zellen jeweils mit den Richtungsvektoren der Nachbarn mitteln
-- wenn eine Nachbarzelle einen Hotspot beinhaltet, wird außerdem eine dorthin gerichtete Strömung (absteigend) oder davon weg gerichtete Strömung (aufsteigend) addiert.
-- wenn eine Zelle eine Küstenlinie enthält, lass die Normale mit in die Richtung einfließen
-- entsprechend kannst du noch Wassertemperatur, Salzgehalt etc. als Information mittransportieren, jeweils gewichtet am Richtungsvektor der Nachbarn, dann hast du deine Klimafaktoren für jeden Punkt.

Hotspots platzierst du erstmal zufällig, ggf. kannst du wissenschaftliche Erkenntnisse für geeignete Kandidaten einfließen lassen (Klimazonen, Landmassen), aber das Ganze ist ja sowieso so komplex, dass "zufällig" wohl ausreicht.

Ich denke, Tiefenströmungen kannst du auch erstmal ignorieren, das dürfte auch so bereits ein glaubwürdiges Bild ergeben. Ansonsten kannst du einfach die Hotspotströmungen in der Tiefe umkehren und eine entsprechend andere Küstenlinie (Kontinentalschelf) voraussetzen. Interessant wird es, wenn das Schelf dann zusätzlich für neue aufsteigende Hotspots verantwortlich wird...
Hi joeydee,
vielen Dank für deinen Vorschlag. Allerdings gibt es folgendes Problem: Die Oberflächenströmungen hängen hauptsächlich von der Wassertemperatur und nur sekundär von dem Wind und der Salzkonzentration ab (jedenfalls meiner Recherche nach zu urteilen).
Hinzu kommt, dass man wohl relativ genau sagen kann, wo Wasser aufsteigt und absinkt (up/downwelling), sodass zufällig dort vielleicht nicht der beste Weg ist.

Mein Ansatz ist jetzt folgender:
Ich erstelle 3 Hilskarten: Windkarte (über ein Jahr gemittelt), Sonneneinstrahlung (über ein Jahr gemittelt), Salzgehalt (pseudozufällig über die tektonischen Platten, keine Ahnung wie ich den Salzgehalt sonst errechnen soll).
Dann erstelle ich die drei Strömungskarten Oberflächenströmung, Tiefenströmung und Wasser-Auf/Abstieg. Oberflächenströmung wird über gewichtete Kräfte von Sonneneinstrahlung, Wind und Salzgehalt initialisiert, Tiefenströmung durch Salzgehalt und Auf/Abstieg durch entsprechende Berechnungen der Rotationskräfte und Dichten.
Diese drei Karten würde ich dann ein paar "Generationen" lang simulieren, bis diese einen Kreislauf bilden.
Ich habe mich an diesem Punkt allerdings erstmal dazu entschlossen, nur die Oberflächenströmung zu betrachten und diese zu simulieren. Dies ist zwar leider noch kein richtiger Kreislauf, aber mit der daraus errechneten Wasseroberflächentemperaturkarte kann ich erstmal arbeiten. Später werde ich mich um eine bessere Simulation kümmern, aber ich möchte erstmal etwas weiter kommen.
Wasseroberflächentemperatur und Hilfskarten
Wasseroberflächentemperatur und Hilfskarten
Erläuterung:
  • Links-Oben: Windkarte
  • Links-Unten: Oberflächenströmung (Initialwerte)
  • Rechts-Oben: Salzkonzentration
  • Rechts-Unten: Wasseroberflächenkonzentration
Die Windkarte und die Oberflächenströmung haben eigentlich eine Auflösung von 4000x2000 je Karte, deswegen kann man die einzelnen Pfeile nicht mehr so genau erkennen. Ich wollte allerdings keine 14MB Kartenmaterial hochladen.

Der nächste Schritt ist die Niederschlagskarte. Danach sollte ich die erste Geozonen-Einteilung vornehmen können.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2296
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] CyberDive (MARPG)

Beitrag von Zudomon »

Huhu! Ich möchte ja kein Spielverderber sein. Das ist alles echt schon sehr krass, was du machst. Aber ich befürchte, letztendlich hast du vielleicht eine ziemlich realistische Planetensimulation, aber aus dem eigentlichen Spiel wird nichts. Vielleicht wäre es besser, wenn du den umgekehrten Weg gehen würdest. Erstmal eine Ebene, auf der du verschiedene Spieler realisierst ( du wolltest doch eigentlich ein MMORPG machen ). Und dann anfängst, da immer komplexer zu werden. So wie du es jetzt machst, arbeitest du zwar auf logischer Ebene deine Punkte ab (also von global zu lokal), aber ich glaube, dadurch wird dein System immer verstrickter und am Ende bleibt kaum noch eine Möglichkeit, wirklich was spielbares daraus zu machen.
Ein schlichtes Multiplayerspiel, in dem Benutzer Interargieren können bringt dich näher an dein eigentliches Ziel, als die beste Planetensimulation in der reale Planeten gerendert werden, und selbst das haben hier nur wenige geschafft bisher.
Ich befürchte einfach, dass du dich verfängst. Du hast ja jetzt schon einiges zu bieten... aber wie geht es weiter? Du musst Städte, Infrastrukturen, Flora, Ökosysteme, Lebewesen und was auch immer einbauen.
Also natürlich ist das alles seeeeehr komplex und egal von welcher Seite du ran gehst, bleibt die Schwierigkeit die gleiche, aber bei dem von mir beschrieben weg könntest du an jeder Stelle abbrechen und hättest dennoch dein Hauptziel erreicht, nämlich ein Multiplayer Game (Ansonsten hättest du vielleicht auch beim Universum und den Gestirnen ansetzen müssen, dem Sonnensystem und dem Erdorbit, um die Gezeiten nach zu bilden, Magnetgürtel für die Polarlichter, Atmosphäre die ja auch einen erheblichen Einfluss auf das Klima hat, das Erdinnere, was dann zu den magnetischen Polen führt usw.). :)

Aber im Endeffekt mache es so, wie du glaubst, dass es für dich am besten ist. Ich möchte dich nicht von deiner Idee abbringen. Man sieht hier nur leider immer so viele Projekte sterben. Ein so mächtiges Projekt, was du hier versuchst alleine zu stämmen, dessen gewaltige Ausmaße man so langsam erahnen kann, ist komplexer, als jedes Spiel, was ich kenne. Selbst Spore, an das es mich nun erinnert, würde ja nur Ansatzweise an das kommen, was du vor hast.

Das soll nicht demotivierend klingen! Aber meine Befürchtung ist, dass du dich selbst durch diese Überforderung demotivieren wirst. Sobald du merkst, es können keine zig Millionen Bäume und Pflanzen berechnet werden und auch Metropolen brauchen Ressourcen. Dagegen sind 4000 x 2000 Pixel-Karten wohl noch das harmloseste.
Und Krishty flashed hier schon seine Grafikkarte mit Scattering, dass im Auge statt findet.
Also eventuell wirst du eine andere Lösungsstrategie brauchen. :|
Die Frage ist ebend immer, was braucht man, damit der SPIELER letztendlich von deiner Realität überzeugt wird. Du kannst die krassesten Systeme haben, um deine Umgebung zu erzeugen, ist dein Licht aber hinterher nicht realistisch genug, dann ist alle Realität dahin.
Warum machst du dir überhaupt solche extremen Ausmaße zugrunde gelegt? Ohne Hilfsmittel, wie weit kann ein Mensch da gehen am Tag? Und jeder, der MMORPGs spielt ist da schon von den Entfernungen nicht gerade angetan und empfindet es als langweilig. Man wird deine Kontinente nicht mal im Flugzeug richtig wahrnehmen. Ich glaube einfach, du schießt mit Atombomben auf Spatzen. Schau dir mal einen Otto-Normal-Mensch in der Wirklichkeit an. Vielleicht deine kleine Cousine (keine Ahnung, ob zu zufällig eine hast), die wird zwar ein paar hundert "Freunde" im Facebook haben und die ganze Zeit mit dem Handy online sein, aber die wird bestimmt nicht durch die Gegend laufen um zu sehen, wo Hügel und Gebirge sind. Wo Ströme im Meer entlang laufen usw. . Da gibt es nur einen Landschaftshintergrund, Tag, Nacht, Sonnenschein, Bewölkt, Regen, Schnee, Blitz und Donner. Damit hast du garantiert schon 90% der klimatischen Wahrnehmung der Spieler abgedeckt.
Am Ende kannst du eh nicht garantieren, dass jeder Grashalm realistisch gewachsen ist. Jeder Trick, alles was du faken kannst, um die Illusion trotzdem aufrecht zu erhalten, bringt dir Resourcen und Rechenzeit für andere Dinge.

Nimm mal Bob Ross. :D
Der nimmt tupft in Sekunden einen Stamm und die Äste eines Baumes dahin, dann nimmt er einen dickeren Pinsel und kleckst ein paar mal aufs Bild und in der Vorstellung es Betrachters sieht es aus, als ob er abertausende Blätter dahin malt. Er malt in ner halben Stunde ganze Landschaften mit Wäldern, und ich würde nicht sagen, dass die nicht ganz schön real aussehen.

[offtopic] JETZT HAB ICHS! SO FUNKTIONIERT UNLIMITED DETAIL!! Bruce hat da nen Bob Ross im Laptop sitzen! [/offtopic]
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Hi Zudomon,

ich verstehe deinen Punkt und werde ihn auch in Teilen berücksichtigen. Allerdings habe ich mir folgende Gedanken dazu gemacht:
  • Ich bezweifle noch, dass das eine Überforderung ist. Ich lese mich in die Materie ein und denke mir performante mini-(Simulations-)Heuristiken aus. Das hat bis jetzt gut geklappt (auch in meinem sonstigen Studium) und z. B. die thermohaline Zirkulation war an sich schon nicht unbedingt trivial.
  • Meine Idee sieht gar nicht vor, dass ich alles sofort generiere. Die Makro-Einflüsse müssen natürlich alle errechnet sein, das geht bis zu den Geozonen. Sobald ich meine Geozonen habe, wird noch einmal deren Landform errechnet und in die Karte eingepasst und dann ist die Weltkarte soweit fertig. Mehr wird nicht vorher (von der Geographie) errechnet. Solange ich also diese ganzen Teile in - sagen wir - unter einer Minute berechne, ist alles in Ordnung.
  • An sich sind diese Ausmaße nicht für dieses Spiel nötig und ich bin auch mir auch ziemlich sicher, dass im Endeffekt der eigentliche Kern des Spieles in den Städten stattfindet und somit lokal sehr begrenzt ist. Trotzdem wir es immer wieder Aufträge geben, die - wenn man diese machen möchte - den Spieler aus der Stadt raus, in die Wildnis oder andere Gebiete der Welt verschlagen. In der Welt ist ja jeder Quadratmeter begehbar. Ich möchte eine große Vielfalt an möglichen Spielschauplätzen bieten, ohne den Spieler zu zwingen, diese zu besuchen. Der Grund, warum ich diese nicht einfach per Hand erstelle oder sonst wie zufällig generiere ist dabei folgender: In dem Spiel soll es eine Art "Nachfolger des Internets" geben, in dem man Informationen finden, handeln und klauen kann. Dazu gehören auch die ganzen geologischen Daten und Wettersysteme und da möchte ich schon ein abgeschlossenes Gesamtbild bieten.
  • Ich habe das Gefühl, dass dieser Ansatz im Endeffekt sogar schneller ist, als die Grafiken per Hand zu erstellen. Insbesondere bin ich kein Grafiker, kenne zwar die Grundzüge von Blender und Photoshop, aber um alleine solche Karten zu erstellen, geschweige denn richtige 3D-Landschaften, müsste ich viel mehr Geduld und Zeit in das Erlernen der entsprechenden Tools aufbringen, als bei meinem Ansatz. Ich bin Programmierer. Das befreit mich zwar nicht davon mir Gedanken über Graphik zu machen (Gras != 0x00ff00), wenn ich sie erstelle, aber meine Tools sind meine IDE und mein Compiler.
  • Diese Welten kann ich nicht nur für CyberDive, sondern in Teilen auch für diverse andere Spiele benutzen, die ich vielleicht noch schreiben möchte. Selbst kleine Spiele würden ja davon profitieren, wenn ich denen z. B. einen kleinen generierten Wüstenstreifen als Welt gebe. Ich kann diese Arbeit also auch sehr gut wiederverwenden.
  • Mein Vater hat meine bisherige Arbeit gesehen und mir gesagt, er will den Rest des Spiels nicht, ich soll ihm nur eine Version bauen, in welcher er mit Flugzeugen und Helikoptern durch die Welt fliegen kann. Einen Welt-Flugzeugsimulator quasi :D
  • Der wichtigste Punkt ist aber eigentlich folgender: Mir macht das einen riesigen Spaß. Ich finde das total toll, meine Geographiekenntnisse aufzufrischen und nachzuvollziehen, wie unser Planet funktioniert. Ich habe in den letzten Tage so viele Dinge über den Aufbau unseres Planeten gelernt und mir wurde zum ersten Mal bewusst, wie gut mein Erdkundeunterricht in der Oberstufe war. Das ist glaube ich auch der Grund, warum ich im Endeffekt wirklich so groß angefangen habe - weil es mich interessiert und mir Spaß bereitet. Während ich das alles programmiere, schreibe ich quasi mein "Design Document" in Form einer MindMap mit. Als ich mir Gedanken über die Regionen gemacht habe, die ich in meinem Spiel haben möchte, war dies erstmal eine Liste von Gebieten (Stadt, Steppe, Wüste, Wald, Berge und noch ein paar mehr). Eigentlich wollte ich die tatsächlich einfach irgendwie auf eine rechteckige Karte malen und dann davon ausgehend weitermachen. Dann habe ich mich allerdings in den Wikipediaartikeln vertieft und dann nahm besagte Euphorie Überhand und führte mich zu dem, was ich jetzt gemacht habe. Für das eigentliche Spiel ist die ganz genaue Aufteilung ja nicht so relevant, hauptsache, ich weiß, wo die Grenzen der Gebiete sind. Falls ich also keine Lust mehr auf die Geographie-Simulation habe, mache ich mich einfach direkt daran, die Gebiete auszuarbeiten und das Gameplay oder so anzufangen. Das könnte man später immer noch sinnvoll verknüpfen.
Mein Resume:
Ich werde erstmal mit meiner Planetensimulation weitermachen, mich allerdings beeilen und gröber simulieren, sodass ich schneller zu den Geozonen und den eigentlichen Gebieten komme. Und ich versuche, relativ zeitnah mit ersten Gameplay-Elementen anzufangen.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] CyberDive (MARPG)

Beitrag von Chromanoid »

Die Idee deines Vaters gefällt mir sehr. Eine Art Planetenerkundungssimulation ohne besondere Aufgaben. Gameplay ein bisschen a'la Endless Ocean. Wenn du auch Städte, Zivilisationen etc. generierst wäre es bestimmt witzig wenn man dort einfach unbemerkt herumlaufen kann, um sich alles anzuschauen. Man müsste dann natürlich dafür sorgen, dass es trotz Prozeduralität eine gewisse Abwechslung gibt.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Also ich denke die erste Tech-Demo wird darauf hinauslaufen, dass man sich den Planeten angucken kann, ohne mit ihm zu interagieren. Dabei wird diese erste Demo wohl noch keine Städte beinhalten.

Ist es bei prozeduralen Inhalten nicht einfacher, Abwechslung einzubauen, als wenn ein Designer (oder eine Armee) eine riesige Welt bauen soll?
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] CyberDive (MARPG)

Beitrag von Chromanoid »

Artificial Mind hat geschrieben:Ist es bei prozeduralen Inhalten nicht einfacher, Abwechslung einzubauen, als wenn ein Designer (oder eine Armee) eine riesige Welt bauen soll?
Für Meere und Kontinente mag das noch funktionieren, aber Kulturen und Lebensformen? Spore versucht ja was in dieser Richtung, aber so richtig abwechslungsreich erscheint mir das nicht. Was passiert wenn eine ganze "Armee" in einer virtuellen Welt ihr Unwesen treibt, sieht man gut an Second Life. Second Life ist so voller Kreativität und Fantasien, dass besagtes erkunden wirklich sehr spannend ist. So etwas prozedural zu erzeugen ist nicht möglich und es zeigt woran es prozeduralen Welten ohne "Armeen von Designern" zumindest noch sehr lange fehlen wird: Symbole der Kultur und des intelligenten Lebens, deren Ursprung in tausenden unterschiedlichen Gehirnen liegt.

BTW Um mal einen Enblick zu bekommen, wie groß die Welt von Second Life (immer noch) ist, bietet http://slurl.com/ eine Google Maps ähnliche Karte. Afaik ist jedes Kästchen übrigens ein Server...
Zuletzt geändert von Chromanoid am 03.09.2011, 15:05, insgesamt 1-mal geändert.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Point taken ;)

Ich tu mein bestes, das es nicht zu langweilig wird. Für das eigentliche Spiel ist ja auch geplant, dass der Spieler Wege und Mittel hat, die Welt zu beeinflussen (nicht Second Life oder Minecraft Style sondern über seine Handlung das Geschehen und Machtgefüge beeinflussen)
pUnkOuter
Establishment
Beiträge: 303
Registriert: 15.04.2002, 15:59

Re: [Projekt] CyberDive (MARPG)

Beitrag von pUnkOuter »

Kommt darauf an, was du unter Abwechslung verstehst. Es ist ziemlich schwierig, die "Prozeduren" so zu gestalten, dass sich "Highlights" bilden, also seltene Dinge, die man nirgendwo sonst so sieht, und dass diese Highlights auch noch einigermassen gleichverteilt sind (wer will schon 50 Planeten abklappern, bis er was Spannendes findet). Dies gilt auch fürs Terrain. Schau dir mal die Vielfalt der Erde an. Das Problem ist: diese Vielfalt ist viel zu weit verstreut. Eine Spielwelt muss das auf engen Raum konzentrieren, damit es dem Spieler nicht langweilig wird. Du musst also quasi Dinge wie die Niagara Fälle, den Zuckerhut, die Sahara, die Antarktis, die Fjorde von Norwegen, die Säulenberge von China, das Great Barrier Reef, den Amazonas-Dschungel, usw., in einer Distanz von wenigen Minuten Reisezeit ansiedeln.
Ein Zeiger ins Blaue ist wie ein Wegweiser nach <SEGFAULT>. Wenn du denkst, mein Name hat was mit abgefuckter Kleidung und bunten Haaren zu tun, dann kehr besser um.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] CyberDive (MARPG)

Beitrag von Artificial Mind »

Nachdem ich im Eilverfahren eine kleine Niederschlagssimulation eingebaut habe, habe ich alle Informationen beisammen, um die Klimazonen einzuteilen.
Klimazonen
Klimazonen
Erklärungen:
  • Links von Oben nach Unten: Relief, Wind, Niederschlag (Januar), Klimazonen
  • Rechts von Oben nach Unten: Tropen, Gemäßigte Breiten, Subtropen, Polarzone
  • Zonen:
    • Blau: Ozean
    • Dunkeltürkis: Ozean (eisbedeckt)
    • Weiß: Polarzone/Eiswüste
    • Türkis: Subpolarzone/Tundra
    • Violett: Kaltgemäßigte Zone
    • Grün: Warmgemäßigte Zone
    • Hellgrün: Humide Subtropen
    • Gelbgrün: Semiaride Subtropen
    • Orange: Aride Subtropen
    • Gelb: Tropische Wüste
    • Sandbraun: Tropische Savanne
    • Limonengrün: Tropischer Regenwald
Die Zonenkarte hat eine Größe von 400x200, wobei jeder Pixel einem Gebiet von ca. 100km x 100km entspricht.

Der nächste Schritt ist nun ein detaillierteres Relief. In Paint.NET kann ich gerade so ein 40000x20000 Bild erstellen, welches dann 3GB Ram frisst ... ich sollte mir eine Alternative überlegen :D
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] CyberDive (MARPG)

Beitrag von Chromanoid »

Vielleicht kannst du ja pro 100kmx100km pixel alle einflüsse so vorberechnen, dass du on demand Generieren kannst. Ansonsten vielleicht mal bei Open Street Map oder anderen GIS Tools reinschnuppern :)
Zuletzt geändert von Chromanoid am 04.09.2011, 21:22, insgesamt 2-mal geändert.
Antworten