Seekarten - Konzept

  • Salve,


    mal eine Frage:


    warum können wir das Wetter denn nicht bei Alternative 1 implementieren?


    Angenommen, wir lassen -H- und -T- - Gebiete über die Karte ziehen. Mehr o. Weniger per Zufall. Die vereinigen sich usw. dürfte ja nicht so schwer sein (?), und wenn doch, wird die Seekarte in Zonen eingeteilt, wo entweder ein -H- oder ein -T- ist. Danach werden die Winde berechnet. Und jenachdem, wie der Wind zum Schiff weht, errechnet sich die Schiffsgeschwindigkeit.


    Vale RF

  • Hallo RF


    Im Prinzip möglich. Man muß jetzt nur noch definieren was soll genau passieren bei folgender Konstellation


    H + H
    T + T
    H + T


    "Wandern" die Wettergebiete auf der Karte.
    Und wieviele H/T soll es insgesammt auf der Karte geben.
    Sollen da auch die Städte betroffen sein. ?( In Port Royale ist dann die Produktion schlechter.


    Ich bin ja kein Wetterexperte. Aber haben wir einen Wetterexperten der uns mal die Konstellationen erklären könnte?
    Kann es überhaupt passieren, daß ein Tief auf ein Hoch trifft oder wird dann das Hoch am Tief "vorbeigeleitet" ?( :crazy:

  • Problem bei Variante 1 ist dann,
    dass man Luftdruck und Wind dann pixelgenau bestimmen müsste,
    ein Irrsinnsaufwand !


    1. Wo krieg ich aktuellen Wind & Co her für mein Schiff her ?
    2. wie berücksichtige ich ihn überhaupt ?
    3. wie wandern die H & T sinnvoll über die Karte ?
    4. wie wird aus den Hs und Ts Wind und Wetter ?
    da kann man schon mal den Großrechner ordern, falls man überhaupt passende Algorithmen findet.


    Außer man legt nur Wind und Wetter mittels Wahrscheinlichkeitsverteilung für größere Zonen fest,
    womit wir automatisch bei Modell 2 wären,
    da man nur über die Zone an den Wind käme.

  • Hallo Galilei


    wir wollen ja keine Wettersimmulation programmieren ;)


    Also die Frage ob eine Wetterlage mit einer anderen Kollidiert würde ich einfach über eine Bounding Box machen.
    Hier ist es nicht sooo wichtig ob sich die Wetterlagen pixelgenau überlappen.
    Die Geschwindigkeit der Wetterlage wäre immer gleich. Oder höchstens mit einer Variaion von z.B. 3 Geschwindigkeiten.
    Die Frage wäre nur, "löst" sich die Wetterlage selbsständig auf oder wandert sie aus der Karte raus ?(
    Alle anderen Attribute wie Luftfeuchtigkeit etc. würde ich gar nicht beachten.
    Es gibt halt ein Tiefdruck und ein Hochdruckgebiet. Fertig :170:

  • es reicht ja eben nicht, eine Wolke im Standardtempo von rechts oben nach links unten über die Karte ziehen zu lassen ...


    und aus 3-4 Hochs oder Tiefs, die als Box über die Karte wandern,
    kriegt man leider keine 8 sinnvollen Windrichtungen und erst recht keine Windstärken raus.


    Habe bei der Überlegung aus Variante 1 oder 2 ein realisierbares Konzept zu machen,
    auch lange darüber gegrübelt und recherschiert,
    aber mit Variante 1 geht das einfach nicht ( sonst wäre es schon längst in P2, Anno oder ä. eingebaut)

  • Hallo Galilei,


    hast Du sowas schon mal programmiert ?(


    Ich würde dich bitten einen Vorschlag nicht deshalb gleich zu verwerfen nur weil er nicht von Dir kommt ;)
    Es ist nur ein Gedankenspiel und noch gar nicht exakt analysiert. :P


    Ich wollte nur sagen ein Großrechner ist für sowas wirklich nicht notwendig :P


    Was die Bounding Box betrifft man muß nicht zig Bounding Boxes plazieren. Das ist eine Eigenschaft die die "Wolkenobjekte" haben. Also relativ einfach zu implementieren.

  • Hallo Seebär,


    ich versteh schon worauf ihr hinauswollt, ist auch eine nette Idee,
    nur die Blechkiste kann mit dem, was ihr als selbstverständlich voraussetzt ( menschliche Vorstellungskraft) - einfach ein paar Bounding Boxes als Hochs und Tiefs über die Karte wandern lassen, die dann (irgendwie) den Wind ergeben -, in ihrer 0001011... - Beschränkheit nix anfangen - für sie eiert da ne Bounding Box über die Karte und weiter passiert nichts.


    Ein Computer ist nun mal eine Rechenmaschine,
    die unglaublich schnell rechnet, aber eben nur genau das, was man ihr Schritt für Schritt eingetrichert hat ( das Fettnäpfchen, in das auch Informatiker gerne treten, nicht nur Programmierer und Laien ),
    beim Versuch Gesichter oder komplizierte Muster zu erkennen, kommt er z.B. kräftig in Schwitzen, was du auf den ersten Blick erkennst, muss er umständlich Pixel für Pixel mit komplexen Algorithmen vergleichen.



    Die einzigen Spiele, die bisher Wind eingebaut haben ( Pirates - sichtbarer Aussschnitt, P(R) - Seeschlachtkarte),
    legen einfach den Wind für die Gesamtkarte fest und schicken fürs Auge noch ein paar Wolken mit.
    Der Wind gilt dann aber immer für die Gesamtkarte, auch wenn er wechseln kann.
    Das macht aber auf der großen Seekarte keinen Sinn (und ist langweilig),
    da unter anderem alle Schiffe sofort auf einen Windwechsel reagieren müssten ( darum ist es auch nicht implementiert, da es in Echtzeit dann Trouble gibt).


    Dann gibt es noch Europa Universalis II - das hat Seezonen etc. - und immerhin Windgeschwindigkeit, wenn auch keine Richtung.

  • Hallo Galilei,


    ich möchte hier nochmal in Errinerung rufen, daß du nicht der Einzige bist der programmieren kann.
    Mir ist auch klar, daß ein Programm nicht von selbst agiert.


    Aber nochmal - Du plazierst die Wolken auf einer Karte. Diese Wolken werden nun für jeden Frame neu gesetzt. Dann prüft die Wolke ob diese mit einer anderen Kolidiert.


    Das hat nichts mit 0001011 zu tun. Wenn jetzt eine Kollision stattfindet wird dann je nachdem was wir wollen eine Aktion ausgeführt. Z.B. ändert sich die Größe der Wolke oder der Schaden an den Schiffen wird größer. Oder..oder..oder.


    Also laß bitte die anderen Diskussionsteilnehmer nicht als blöde dastehen als ob wir von nichts eine Ahnung hätten. ;)


    Ich möchte nur in Errinerung rufen, daß Du alleine das Projekt auch nicht verwiklichen kannst :170:

  • Sorry,


    ich will eigentlich nicht mit euch streiten - erst recht nicht irgendjemand als blöde dastehen lassen,
    (will euch nur vergebliche Überlegungen ersparen),
    habe aber schon ein paar Wochen intensiver drüber nachgegrübelt,
    was man an Datenstrukturen und Algorithmen frür die Seekarte verwenden könnte
    und versucht ein Konzept nach den Rezepten des Software Engineering zu basteln.
    ( Hatte zum Beispiel erst die Idee, den Wind für jede Seezone zu berechnen und zwischen diesen zu harmonisieren bzw. wandern zu lassen - was viel zu hoher Rechenaufwand und eklig kompliziert geworden wäre, ohne das Gewünschte zu erreichen).


    Daher bin ich auf meine Simulationskenntnisse ausgewichen,
    ein Standardzufallsgenerator spuckt blitzschnell eine Zahl zwischen 0.0 und 1.0 aus.
    Die vergleicht man jeweils mit einem Array der Wahrscheinlichkeitsverteilung für Wind etc. .
    Bei größeren Seegebieten, bemerkt den Zufall im laufenden Spiel sowieso keiner,
    wenn die Verteilungen gut gewählt werden. ( den Algorithmus schreibt man locker in einer halben Stunde)


    Das kriegt man mit über den Bildschirm wanderden "H-/t- Quadraten" nicht hin,
    da müsste man sich erstmal überlegen,
    wie diese sich abwechslungsreich verhalten könnten ( Richtungsänderungen, Größenänderungen),
    dazu Kollisionen erkennen (einfach) und sinnvoll behandeln (kompliziert)
    und hätte damit immer noch das Problem, wie jedes der Hunderte Schiffe sekundengenau seine Windinformationen kriegt und diese berücksichtigt.

  • Hallo Galilei,


    ich wollte hier nur deutlich machen, daß wir nicht jeden Vorschlag sofort verwerfen sollten der im Ansatz etwas komplizierter ist ;)


    Über Zeiten können wir noch gar keine Aussagen machen. Dazu müßten wir dann erstmal über das Netzwerkinterface diskutieren.


    Zitat


    ... jedes der Hunderte Schiffe sekundengenau seine Windinformationen kriegt ...


    Und sekundengenau wird das sowieso nicht klappen. Wir werden die Client-Daten optimieren müssen.
    Wenn wir nämlich alle Daten(Waren der Städte, Gewitter, Schiffszustand, etc.) bei jedem Refresh übertragen, wird das seehr langsam.
    Auch haben wir noch gar kein Gefühl wie groß die Refreshrate eigentlich sein soll.
    Aber das können wir in einem anderen Thread diskutieren ;)

  • Zwei Vorschläge:


    1.) Die Wetterzonen kann man mit einem Plasmagenerator oder einem Landscape-Generator machen (entsprechenden Quellcode findet man bei etwas Suche sicher auch im Netz, z.B. hier: http://www.freevbcode.com/ShowCode.asp?ID=5764, ich hätte hier auch noch einen in DOS C++).


    P.S.: Ein Plasmagenerator erzeugt ein Zahlenfeld, das entsprechend aufbereitet wie Feuer oder ein bewölkter Himmel aussehen kann, also mit fließenden Übergängen zwischen warm und kalt oder in diesem Fall Hoch- und Tiefdruck. Die Algorithmen sind sehr schnell, so dass man sich um die Rechenzeit auch keine Gedanken machen muss.


    2.) ...und vor allem viel wichtiger:


    Warum machen wir uns um solche Details Gedanken, wenn es bisher noch immer kein Grobkonzept gibt???


    Mit Grobkonzept meine ich:


    P2-Klon mit Erweiterungen? Schwenk in ein anderes Genre (weniger Handel, mehr Strategie)? Vereinfachung des Ablaufs, dafür online, so dass es durch viele Spieler zu einer eigenen Dynamik kommt? Oder etwas ganz anderes?


    Darüber müssen wir uns erstmal einig werden! Jede dieser Richtungen hat doch ganz andere Anforderungen an die konkrete Ausführung! Wir können doch nicht einfach mal anfangen und dann gucken, was dabei heraus kommt, dann kann man auch gleich gar nicht anfangen.


    Galilei : Du hattest auf diese Frage ja schon ein paar Vorschläge gemacht: http://die-patrizier.de/patriz….php?postid=2559#post2559
    Das sind alles sehr interessante Ideen, aber es sind eben Details! Aber ich sage es nochmal: Bevor wir hier nicht sicher sind, dass wir vom Gesamtkonzept her alle in die gleich Richtung rudern, brauchen wir nicht mit programmieren anzufangen!


  • Auf die ERkenntnis wollte ich ja nur hinaus,
    da RF nach einer Möglichkeit gefragt hat, Wetter auch auf einer Karte im P2 - Stil ( Alternative 1) einzubauen.

  • Zitat

    Original von KäptnBlaubär
    Zwei Vorschläge:


    1.) Die Wetterzonen kann man mit einem Plasmagenerator oder einem Landscape-Generator machen (entsprechenden Quellcode findet man bei etwas Suche sicher auch im Netz, z.B. hier: http://www.freevbcode.com/ShowCode.asp?ID=5764, ich hätte hier auch noch einen in DOS C++).


    P.S.: Ein Plasmagenerator erzeugt ein Zahlenfeld, das entsprechend aufbereitet wie Feuer oder ein bewölkter Himmel aussehen kann, also mit fließenden Übergängen zwischen warm und kalt oder in diesem Fall Hoch- und Tiefdruck. Die Algorithmen sind sehr schnell, so dass man sich um die Rechenzeit auch keine Gedanken machen muss.


    Interessanter Ansatz,
    damit hätte man ein Zahlenfeld mit fließenden Übergängen für Hochs und Tiefs.
    Nur wie kriegt man dann daraus Wind und Wettereffekte, die man für die Schiffsbewegungen nutzen könnte ?
    Bildschirmfüllendes Feuer oder bewölkten Himmel wird man wohl im Gesamtkonzept nicht brauchen.

  • ...man kann auch das Modell "Ascaron" wählen:


    Ein Schiff hat unabhängig von der Richtung eine bestimmte Mindestgeschwindigkeit und bekommt einen zufälligen Bonus dazu. Die Dauer dieses Bonus ist ebenfalls zufällig, danach werden Bonusgeschwindigkeit und deren Dauer wieder neu erzeugt.


    Keep simple things simple!


    Das jetzt mal als ganz konkretes Beispiel, wie man sehr viel Fleiß und Energie in ein Detailproblem (!!!) stecken kann, dass auch ganz einfach gelöst werden kann. Nix Wetterkarten, Variablengeschiebe, o.ä., nur kleine Vereinfachungen, die aber völlig ausreichen.
    Und das ist genau die Herangehensweise, wie Sid Meier das "Gunship2000" auf einem 386er in 3D zum Fliegen gekriegt hat. (Das ist übrigens der Schöpfer von Railroad Tycoon und Civilization, falls das noch einige kennen).


    Auch wenn ich mich jetzt wiederhole: Es wäre gut, wenn die Energie für die Details zunächst erstmal in das Spielkonzept und -design gesteckt werden würde! Wir sollten hier etwas mehr top-down statt bottom-up machen!

  • Zitat

    Original von KäptnBlaubär
    Auch wenn ich mich jetzt wiederhole: Es wäre gut, wenn die Energie für die Details zunächst erstmal in das Spielkonzept und -design gesteckt werden würde! Wir sollten hier etwas mehr top-down statt bottom-up machen!


    Da stimme ich zu!

  • Ich tendiere auch stark für eine minimalversion unseres Spiels.
    Allerdings hätte ich dabei den Wunsch das Spiel noch für eigene "Add-ons" offen zu halten. Ist ersteinmal ein einfaches Spiel (wenigstens als Konzept) entstanden, so kann man später immer noch Add-on-Projekte für Extras einbauen und es komplexer, schöner und besser werden zu lassen.


    Gruß, Jo

  • http://die-patrizier.de/galilei/galilei27-06.zip


    vielen Dank an Holzwurm :170:


    Installation:
    benötigt Java Runtime Enviroment 1.5x,
    wer sich nicht per Hand mit Java rumschlagen will,
    verwendet am besten die IDE Netbeans,
    da kann man die entpackten Ordner einfach als Projektordner öffnen und ausführen lassen.
    Bilder.zip enthält PLatzhalter-Grafiken für die Seezonen,
    die müssen nach C:/Images entpackt werden