Autor Thema: Hexcrawl Weltenbau Support Tool - Brainstorming  (Gelesen 6473 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #25 am: 14.10.2016 | 11:47 »
@Skeeve: Ja, so wäre das machbar. Ich hab sogar extra das Zufallssystem so aufgebaut, dass, solange nichts an den Basis-Templates geändert wird, immer die Gleichen Zufallsverteilungen vorkommen, da der Zufallszahlengenerator mit den Hexfeld-Koordinaten initialisiert wird. D.h. das zufällig generierte Banditencamp wird, wenn du die Karte erneut generierst, wieder an der gleichen Stelle sein.

Kivy klingt interessant. So eine App mit der man am Spieltisch Hexinformationen eintragen kann ist bestimmt cool. Damit das Ganze aber mit meinem Generator zusammen funktioniert, müsste man sich mal einen kompletten Prozess überlegen, vor allem was Updates angeht.

Ich hab jetzt auch die Hexfelder-Entfernungsberechnung eingebaut. Jetzt kann man z.B. Goblins immer in einem bestimmten Umkreis von Siedlungen auftauchen lassen. Außerdem habe ich einen Schwierigkeitsgrad-Generator für die Hexfelder geschrieben. Dieser vergibt Schwierigkeitsgrade so, dass nicht riesige Sprünge zwischen den Schwierigkeitsgraden entstehen, mehr niedrigere als höhere vorkommen und wählbar von einem mindestschwierigkeitsgrad bis zu einem maximum vorkommen.

Das Ganze funktioniert jetzt schon recht gut, allerdings habe ich gemerkt, dass ich gerne sehr viel mehr unterschiedliche generische Begegnungen haben möchte. Vielleicht baue ich also noch eine zweite Stufe für die Scripte ein, die dann Event-Scripte generiert, so dass man dann einfach nur noch ein paar Basis-Werte für Kreaturen angeben muss und daraus werden dann verschiedene Begegnungen generiert.

Beispiel:

Löwe, CR 3, MinOcc=1 MaxOcc=5, Raubtier, Sandwüste, Steinwüste, Steppe
Gepard, CR 2, MinOcc=1, MaxOcc=2, Raubtier, Jungel
Gazelle, CR 1/4, MinOcc=1, MaxOcc=5, Fluchttier, Steppe, Grassland

Also natürlich in XML Form, aber dann werden daraus für Raubtiere dann entsprechende Encounter, wo diese aus dem Hinterhalt angreifen oder man sie umgehen kann, bei Fluchttieren Encounter, bei denen man sich anschleichen kann etc.

Leider kann ich gerade kein Update hochladen weil mein Haupt-PC beschlossen hat, statt auf dem Bildschirm Informationen über Rauchzeichen zu übertragen ;) Aber keine Angst, hab ja noch nen Laptop und alles über Dropbox gesichert.
« Letzte Änderung: 14.10.2016 | 11:49 von firstdeathmaker »

Offline Skeeve

  • Hero
  • *****
  • Beiträge: 1.632
  • Geschlecht: Männlich
  • Username: XoxFox
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #26 am: 16.10.2016 | 02:11 »
da der Zufallszahlengenerator mit den Hexfeld-Koordinaten initialisiert wird.

Ja, schon gesehen. Ich überlege noch ob ich das auch mache. Jedenfalls bekommen die Karten bei mir einen allgemeinen Startwert für den Zufallszahlengenerator damit ich reproduzierbare Ergebnisse bekomme.

da der Zufallszahlengenerator mit den Hexfeld-Koordinaten initialisiert wird.
Kivy klingt interessant. So eine App mit der man am Spieltisch Hexinformationen eintragen kann ist bestimmt cool. Damit das Ganze aber mit meinem Generator zusammen funktioniert, müsste man sich mal einen kompletten Prozess überlegen, vor allem was Updates angeht.

An Kivy dachte ich jetzt erstmal nur zwecks Navigation und so. Also das was man bei einer Webanwendung mit Links, Buttons usw. machen würde. Die "App" zum eintragen von Hexinformationen wird bei mir ein Editor sein mit dem ich den Python-Quellcode bearbeite...
... oft genug sind die Spieler die größten Feinde der Charaktere, da helfen auch keine ausgeglichenen Gegner

Hoher gesellschaftlicher Rang ist etwas, wonach die am meisten streben, die ihn am wenigsten verdienen.
Umgekehrt wird dieser Rang denen aufgedrängt, die ihn nicht wollen, aber am meisten verdienen. [Babylon 5]

Offline Skeeve

  • Hero
  • *****
  • Beiträge: 1.632
  • Geschlecht: Männlich
  • Username: XoxFox
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #27 am: 16.10.2016 | 03:11 »
Wobei bei meinem Projekt noch so ein Simulationsgedanke (und an Single-Player Spiel denke ich irgendwie auch) irgendwo im Hintergrund schwebt... falls ich mal in ferner Zukunft so weit kommen werde mit der Programmierung. Wofür ich dann wohl auch wie Talwyn ein Tracking der Ingame-Zeit brauchen werde. Ich denke da z.B. an den fahrenden Händler der immer zwischen einer Stadt und den umliegenden Dörfern pendelt oder den NSC der jahrelang in der Stadt Trifid wohnt(e).

Wenn die Abenteurer dann nach Trifid kommen um den NSC aufzusuchen, dann ist er entweder da (wenn sie rechtzeitig ankommen) oder sie erfahren von den Nachbarn dass der NSC vor kurzem gerade abgereist ist (wenn sie zu spät kommen). Nun könnte ich als Spielleiter auch festlegen dass der NSC immer vor Ort ist, egal wieviel Zeit die Abenteurer für die Reise nach Trifid benötigen oder das er immer "gerade vor drei Tagen abgereist" ist, egal wann die Gruppe in Trivid auftaucht. Aber das ist ncht so mein Ding. Jedenfalls noch nicht. Gibt es da beim Thema "Sandbox" nicht den Begriff "lebende Welt" oder so? Ich hätte es schon gerne wenn sich die Welt auch unabhängig von den Abenteurern bewegt und verändert... vermutlich werde ich vorerst die Frage "Wo und wohin sind meine NSCs unterwegs?" mit Stift und Papier managen, aber darauf habe ich nur bedingt Lust und etwas dafür zu programmieren ist viel lustiger.

Und die Gerüchte und Geschichten über Ereignisse in entfernten Städten die durch die umherziehenden NSCs verbreitet werden und die (Helden)Taten der Abenteurer: wo sind die schon bekannt wo noch nicht? Auch schon in dem Dorf von dem die Abenteurer nur noch eine Tagesreise entfernt sind?
Alles Fragen um die ich mich ncht selbst kümmern müsste, sondern mich von der Welt überraschen lassen könnte.
... oft genug sind die Spieler die größten Feinde der Charaktere, da helfen auch keine ausgeglichenen Gegner

Hoher gesellschaftlicher Rang ist etwas, wonach die am meisten streben, die ihn am wenigsten verdienen.
Umgekehrt wird dieser Rang denen aufgedrängt, die ihn nicht wollen, aber am meisten verdienen. [Babylon 5]

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #28 am: 20.10.2016 | 21:48 »
Soo, mal wieder ein Update. Links im ersten Post sind aktualisiert. Ich habe jetzt noch ein gröberes XML Format eingebaut, mit dem man massenweise Encounter einbauen kann. Diese tauchen dann in den Encounter-Tabellen auf, aber beinhalten nur die Anzahl und den Kreaturentyp (sowie einen Link auf weitergehende Informationen). Ist allerdings nicht mehr ganz so generisch, da ich für Pathfinder CR<->XP Umrechnung benutze um die Encounter zusammen zu stellen.

Ein Beispiel für eine solche XML-Datei:
<?xml version="1.0" encoding="UTF-8"?>

<generichexcrawl>
<creatures>
<creature name="Giant Spider" cr="1" environment="Sandy Desert, Rocky Desert" organization="1,2,5,8" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/vermin/spider/giant-spider"/>
<creature name="Skeletal Champion" cr="2" environment="Sandy Desert, Rocky Desert" organization="1,2,5,12" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/undead/skeletal-champion"/>
<creature name="Bat Swarm" cr="2" environment="Sandy Desert, Rocky Desert" organization="1,2,3,6,11" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/bat/bat-swarm"/>
<creature name="Giant Scorpion" cr="3" environment="Sandy Desert, Rocky Desert" organization="1,2,4" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/vermin/scorpion/scorpion-giant"/>
<creature name="Dire Bat" cr="2" environment="Sandy Desert, Rocky Desert" organization="1" tableWeight="2" probability="0.05" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/bat/bat-dire"/>
<creature name="Venomous Snake" cr="1" environment="Sandy Desert, Rocky Desert" organization="1,2,5" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/snake/snake-venomous"/>
<creature name="Basilisk" cr="5" environment="Sandy Desert, Rocky Desert" organization="1,2,4" probability="0.05" href="http://www.d20pfsrd.com/bestiary/monster-listings/magical-beasts/basilisk"/>
<creature name="Mummy" cr="5" environment="Sandy Desert, Rocky Desert" organization="1,3,8" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/undead/mummy"/>



<creature name="Squid" cr="1" environment="Ocean" organization="1,2,3,6,12" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/squid"/>
<creature name="Water Mephit" cr="3" environment="Ocean, Sea" organization="1,2,3,4,5,6,7,8,9,10,11,12" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/outsiders/mephit/mephit-water"/>
<creature name="Sea Hag" cr="4" environment="Ocean, Sea" organization="1,3" behaviour="hunter" tableWeight="0.5" probability="0.1" href="http://paizo.com/pathfinderRPG/prd/bestiary/seaHag.html"/>

<creature name="Sahuagin" cr="2" environment="Ocean, Sea" organization="1,2,5,8" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/monstrous-humanoids/sahuagin"/>
<creature name="Shark" cr="2" environment="Ocean" organization="1,2,4,9" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/shark/shark"/>
<creature name="Skum" cr="2" environment="Ocean, Sea" organization="1,3,10" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/monstrous-humanoids/skum"/>
<creature name="Giant Moray Eel" cr="5" environment="Ocean" organization="1,2,5" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/eel/eel-moray-giant"/>
<creature name="Large Water Elementals" cr="5" environment="Ocean, Sea" organization="1,2,5" tableWeight="0.5" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/outsiders/elemental/elemental-water/large-water-elemental"/>
<creature name="Dire Shark" cr="9" environment="Ocean" organization="1" probability="0.1" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/shark/dire-shark"/>
</creatures>
</generichexcrawl>

Die meisten attribute sollten selbsterklärend sein, probability bezeichnet die Wahrscheinlichkeit, dass diese Kreatur auf einem Hex mit dem angegebenen Umgebungstyp vor kommt. Organization bezeichnet die Anzahl dieser Kreaturen. Der CR der Begegnung wird entsprechend angepasst, wenn mehrere vorkommen. D.h. wenn ich 3 Giant Spider habe (CR 1) wird der Encounter nur in Gebieten vorkommen, die etwa CR 4 haben (CR 1 = 400 XP, 3 x 400 XP = 1200 XP = CR 4).

Das oben stehende Beispiel habe ich mit benutzt, um die aktuelle Demo zu generieren. Was man jetzt mal bräuchte, wäre eine schöne Sammlung an solchen Dateien. Da man diese einfach so in den events/ Ordner schmeissen kann und die dann dort ausgewertet werden, kann man so ganz einfach die Dateien je nach Laune austauschen. Wie man die genau sortiert, z.B. eine Datei nur für Wüstenbegegnungen, oder eine große für alles oder was weis ich, bleibt einem selbst überlassen.

Ach so, wenn ihr die Demo anschaut: Die meisten Begegnungen gibt es gerade in der Stein- oder Sandwüste sowie im Ozean.

Edit: Habe noch ein weiteres Update hochgeladen. In diesem habe ich die Zufallstabellengeneration noch einmal überarbeitet und für alle Gebiete Kreaturen hinzugefügt.
Die Generation erfolgt jetzt so, dass es eine minimale Anzahl und eine maximale Anzahl von Tabelleneinträgen gibt. So lange die minimale Anzahl noch nicht überschritten ist, werden weitere Aufrufe an den Generator getriggert. Wenn zu viele in der Tabelle sind, werden aus den vorhandenen zufällig welche rausgeschmissen.

Außerdem wurde für die Schwierigkeitsgrade eine Gewichtung eingefügt. D.h. leichte oder schwerere encounter als die des Hex-CR sind seltener (niedriger Table-Weight) als welche mit dem gleichen Schwierigkeitsgrad.

Des weiteren kann man die Attribute der einzelnen Kreaturen auch dem "<creatures>" element übergeben, diese dienen dann als default-wert für die darunter stehende Gruppe. Das macht es übersichtlicher, wenn man z.B. nur "Ocean" Kreaturen in einer Liste hat.

Was ich auch schon eingebaut, aber nicht getestet habe, ist, einfache Behaviour-Typen zu generieren:

<creature name="Shark" cr="2" environment="Ocean" organization="1,2,4,9" behaviour="hunter" perceptionDC="15" href="http://www.d20pfsrd.com/bestiary/monster-listings/animals/shark/shark"/>
Die HTML-Seiten dafür sind bisher noch hardcoded, aber grundsätzlich funktioniert es so, dass man einen HTML-Text hat, dort Variablen mit ?varname Kennzeichnet und diese Variablen dann durch passende Attribute ersetzt werden. Das Template für den "hunter" sieht z.B. so aus:

<h1>?name Hinterhalt(CR ?totalcr, XP ?totalxp)</h1>
                    <p class="description">Du wirst aus dem Hinterhalt angegriffen.</p>
                    <p class="option">Würfle perception gegen DC ?perceptionDC, wenn nicht geschafft, bekommt der Gegner eine Überraschungsrunde.
<p class="stats">?number x <a href="?href">?name (CR ?cr, XP ?xp)</a><br/></p>
</html>

?totalxp und ?totalcr werden vom Script selbst berechnet.

Was ich bisher gemerkt habe ist, dass ich nicht beides unter einen Hut bekommen kann: Totale Flexibilität und trotzdem passend für Pathfinder. Außerdem komme ich mit der Doku kaum hinterher. Aber das macht nix, es ist ja nur ein Prototyp um mal auszuloten, was so alles geht.
« Letzte Änderung: 21.10.2016 | 13:46 von firstdeathmaker »

Offline Shihan

  • Hero
  • *****
  • Beiträge: 1.231
  • Username: Shihan
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #29 am: 9.05.2018 | 12:09 »
Gibt es eigentlich Neuigkeiten oder ruht das Projekt?