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

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Hallo,

ich wollte euch mal ein kleines Projekt vorstellen, an dem ich gerade arbeite. Es geht um die Erstellung einer Hexcrawl-Sandbox, bzw. inzwischen darum, ein kleines script zu schreiben, das einem Weltenbauer dabei unterstützen soll, ein eben solches zu erstellen. Am coolsten wäre es, wenn dabei nachher etwas heraus kommt, dass man sogar als Single-Player spielen kann, oder alternativ eben mit einem Spielleiter, der aber einem festen Set aus Regeln folgen kann.

Die Grundidee ist die folgende: Ich möchte, dass der Weltenbauer nur das machen muss, worauf er wirklich Lust hat und der Rest soll automatisch von Script ausgefüllt und sinnvoll ergänzt werden. Und das Ganze soll nachher als statische HTML-Seite vorhanden sein, sodass man es ohne Sicherheitsbedenken auf seine eigene Homepage laden kann oder auch lokal verwenden kann.

Wie und was funktioniert bisher?

Der Weltenbauer erstellt mit dem Tool Hexographer seine Hexmap (entweder er generiert sie damit, oder baut sie selbst zusammen). Dann speichert er die Karte als .png Bilddatei ab und speichert auch die Hexographer-Datei. Beides übergibt er meinem Script.

Dann schreibt er Templates, aus denen dann die Inhalte der späteren individuellen Seiten generiert werden. Er kann entweder für ganz konkrete Hexfelder Inhalte schreiben, oder aber allgemeine für bestimmte Landschaftstypen und Features (z.B. Dörfer). Am Ende lässt er den Code laufen und dieser liest das Hexographer file und erstellt daraus eine Index Webseite, welche die Weltkarte enthält, mit Verlinkungen der einzelnen Hex-Tiles auf konkrete Unterseiten. Die Unterseiten enthalten die Inhalte der Templates.


Weshalb ich das Ganze hier poste?

Ich würde gerne ein wenig Feedback und Ideen sammeln. Ich bin an einem Punkt, wo ich mich entscheiden muss, wie detailliert ich das Ganze gestalten möchte und wie ich das konkret realisiere. Die statischen HTML-Seiten setzen hier natürlich ein gewisses Limit, was möglich ist. Auf der anderen Seite möchte ich aber auch, dass die Template-Schreiberei nicht zu stark ausartet. Bisher werden die Textteile in den Templates einfach nur in den Body der generierten Seite eingefügt. Bevor ich hier aber wie wild dynamisch generierte Inhalte und Encounter-Listen implementiere, wollte ich mir erst sicher sein, wie denn eine solche Seite für ein Hex aussehen soll. Was muss da drauf, damit der Spieler selbst im "Singleplayer" Modus genug Vorgaben hat, dass er damit gut interagieren kann?

Ich suche also eine Struktur/Aufbau, die einem klassischen Spielbuch nicht unähnlich ist, aber durch HTML-Links und generische Inhalte dem Spieler viel mehr Optionen liefert, was er tun kann.


Eine simple Idee von mir war, dass ich die Hexfelder unter anderem mit einfachen Kreaturen populiere, die ein begrenztes Interaktionsschema besitzen: Raubtiere und Beutetiere. Dazu kann der Weltenbauer die Tierarten und deren Verhalten eingeben und dann werden daraus kleine Mine-Encounter generiert.

Beispiel:
Löwe
Vorkommen: Steinwüste, Sandwüste
Schwierigkeit: 5 (Die Gebiete bekommen intern eine bestimmte Schwierigkeit zugewiesen und nur dazu passende Tierarten und Encounter werden generiert)
Globale Häufigkeit: 5 (Wie warscheinlich ist es, dass sie dort überhaupt leben)
Lokale Häufigkeit 10 (Wie warscheinlich ist es, dass man ihnen dort begegnet, wenn sie dort leben)
Verhalten: Neutral:5, Territorial:10, Hinterhalt:5 (Daraus wird die Encounterart und deren Häufigkeit bestimmt. Bei "Hinterhalt" pirscht sich der Löwe heran und greift an)


Ich bin mir allerdings nicht sicher, ob das auch gut zu realisieren ist oder vielleicht sogar schon zu detailliert ist. Was meint ihr dazu?

Die wirklich interessanten POI werden am Ende aber immer vom Weltenbauer erstellt. Die Hexmap dient quasi als Sandbox und Kulisse, in die dann die individuellen Inhalte hinein kommen und entdeckt werden können.


EDIT: Wer das ganze mal ausprobieren möchte:
Live Demo

Download der aktuellen Version R5 (Python 3.4 oder kompatibel wird zum ausführen benötigt)
« Letzte Änderung: 21.10.2016 | 15:06 von firstdeathmaker »

Offline Antariuk

  • Legend
  • *******
  • Beiträge: 4.797
  • Geschlecht: Männlich
  • Username: Antariuk
    • Plus 1 auf Podcast
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #1 am: 4.10.2016 | 17:37 »
Absolut fantastische Idee! :d

Um es richtig ansprechend zu machen wäre es glaube ich ideal wenn man gar nichts an Bausteinen schreiben muss sondern eine paar Vorgaben hat die man nach Lust in die jeweilige Liste klicken kann (manuelle Eingaben dann nach wie vor möglich, aber nicht mehr notwendig). Das bedeutet zwar einiges an Mehraufwand, aber damit könnte man letztendlich glaube ich besser testen ob der Laden wie geplant funktioniert indem man aus den vorhandenen Optionen Content generiert und dann schaut ob und wie das zusammen passt.

Was die Art der Encounter angeht, so etwas wäre denke ich wohl nur für einen Singleplayer notwendig. Zumindest wenn man mit Oldschool-Befindlichkeiten an die Sache herangeht ist das Interpretieren von Ergebnissen einer Random Encounter Tabelle eine wichtige Aufgabe des SL - die ihm abzunehmen auch nicht zwingend zu einem besseren Spiel führt. Aber da gibt es natürlich keine Absolute, kann man so oder so sehen.

Konkrete Kritik am aktuellen Prototyp: ist es möglich beim Klicken auf einzelne Hexe/Inhalte die Übersichtskarte nicht komplett zu verlieren sondern noch so als Mini-Map oder ähnliches zu behalten? Weil aktuell ist das in Sachen Singleplayer-Immersion zwar toll dass man direkt "drin" ist, als SL würde mich das vor- und zurückklicken für die Orientierung aber sehr schnell nerven. Alternativ (oder zusätzlich) auch eine Mouse-Over Infobox was sich hinter Einträgen auf der Hexmap verbirgt, sowie eine Liste mit (vom User angelegten) Plot Points/Encountern/wichtigen Sachen.
Kleiner Rollenspielstammtisch: Plus 1 auf Podcast

"Ein Zauberer mag noch so raffiniert sein, ein Messer im Rücken wird seinen Stil ernsthaft versauen." - Steven Brust

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #2 am: 4.10.2016 | 18:09 »
Danke für das Feedback.

Das mit der Übersichtskarte ist zwar theoretisch machbar, aber wie genau hast du dir das vorgestellt? Das die weiterhin klickbar ist und dann z.B. in einer Ecke irgendwo angezeigt wird?

Als Alternative hatte ich auch überlegt, die Navigationslinks unten durch eine Ausschnittsansicht zu ersetzen, also die direkt angrenzenden Hexfelder unten anzuzeigen und mit einem klick auf eines dieser zu navigieren, statt einen der Textlinks zu benutzen.

Idealerweise ist das Ganze nachher so flexibel, dass man damit sowohl Singleplayer als auch offenere Spielleiter-Hexmaps mit designen kann. Und man könnte Encounter-Tabellen als Presets austauschen. Ich überlege gerade, ob ich das Ganze nicht einfach über XML mache, so dass das Script schaut, ob es ein .txt file oder ein .xml file ist. Wenn .txt, dann wird der Textinhalt einfach hinein kopiert, wenn .xml, dann wird es interpretiert.

Das mit den "gar keine Bausteine schreiben müssen" wird die Standardeinstellung sein. Dann braucht man nur das Hexographer file und das exportierte .png und lässt das Tool laufen. Wenn man etwas anders haben möchte, kann man ja jederzeit die Encounter-Tabellen und Textbrocken ändern, das Layout über die .css Datei ändern etc.

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #3 am: 5.10.2016 | 11:14 »
Soo, jetzt hab ich mal die Minimap eingebaut. Bzw. das Navigation-Panel, wie ich es nenne.

Es generiert für jedes Hexfeld einen kleinen Kartenausschnitt der umgebenden Hexfelder (färbt das aktuelle Hex ein und schneidet Hexfelder, die nicht direkt benachbart sind, raus). Dieser wird dann am Ende einer Hex-Webseite angehängt und ebenfalls mit Navigations-Links versehen. Das Ganze sieht dann z.B. so aus:


Die Demo habe ich aktualisiert, da kann man es mal ausprobieren. Gefällt mir schon ganz gut, war aber ein Haufen Arbeit. Jetzt wende ich mich mal wieder der Content-Generierung zu.

Offline Antariuk

  • Legend
  • *******
  • Beiträge: 4.797
  • Geschlecht: Männlich
  • Username: Antariuk
    • Plus 1 auf Podcast
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #4 am: 5.10.2016 | 11:33 »
Sehr cool umgesetzt! :d Einzig die grünliche Färbung stört mMn etwas weil man das bei einigen Terrains nur schlecht erkennt, wäre eine Einrahmung des zentralen Hex in der Vorschau als Alternative möglich?

Was genau gehst du als nächstes an bei der Contentgenerierung? Brauchst du Unterstützung dabei?
Kleiner Rollenspielstammtisch: Plus 1 auf Podcast

"Ein Zauberer mag noch so raffiniert sein, ein Messer im Rücken wird seinen Stil ernsthaft versauen." - Steven Brust

Offline 1of3

  • Richtiges Mädchen!
  • Titan
  • *********
  • Proactive Scavenger
  • Beiträge: 18.969
  • Username: 1of3
    • Sea Cucumbers and RPGs
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #5 am: 5.10.2016 | 13:16 »
Ich weiß nicht, ob du das gesehen hast, das Projekt "Zwillingsseen" hier im Rollenspielbau liest die individuellen Feldbeschreibungen aus einem Google-Doc ein. Vielleicht hilft dir das.

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #6 am: 5.10.2016 | 13:44 »
Zitat
wäre eine Einrahmung des zentralen Hex in der Vorschau als Alternative möglich?
Ja, das ist machbar. Zum technischen Hintergrund: Ich schreib das ganze in Python 3.4 und nutze für die Bilder OpenCV.
Daher kann ich da ziemlich vieles machen. Um die Vorschau-Bilder so sauber zu erzeugen sind einige technische Tricks notwendig. Vor allem der Rand der Map ist immer etwas kniffelig.
Hab die Ränder gerade mal eingebaut und auch das markieren des Hexfeldes etwas angepasst. Man kann jetzt eine Farbe für die innere Markierung, eine für die Äußere sowie eine Liniendicke für die Umrandung angeben. (Demo wird gerade upgedatet).

Hmm, Zwillingsseen, das werde ich mir mal anschauen. Danke! Allerdings geht es mir hierbei ja darum, dass Inhalte auch Zufallsgeneriert sein sollen, damit man selbst mit weniger Aufwand eine Karte erstellen kann.

@Antariuk: Bei der Contentgenerierung will ich erst mal gut überlegen, wie ich das Ganze überhaupt aufbauen möchte. Im Moment Überlege ich in Richtung xml-Dateien, z.B. so in etwa:

<wildlife>
<race name="Löwe" cr="2" habitatrange="2">
<occurance terrainName="Grassland" globalChance="0.5" localChance="0.01" />
<occurance terrainName="Sandy Desert" globalChance="1" localChance="0.01" />
<occurance terrainName="Rocky Desert" globalChance="1" localChance="0.01" />
</race>
</wildlife>

Aber das ist bisher nur Brainstorming. Wenn das alles so weit steht, dann könnte ich in der Tat Hilfe dabei gebrauchen, schöne Texte und Zufallstabellen für die verschiedenen Gebiete zu erstellen, die dann als Default-Templates dabei lägen. Auch könnte ich Hilfe dabei gebrauchen, schöne Default-Formatierungen für die Seiten zu erstellen. Am Ende geht es mir aber nicht direkt um diese default Templates, sondern darum, ein nützliches Tool zu bauen, das uns und andere dabei unterstützt, schöne Hexwelten zu bauen.
« Letzte Änderung: 5.10.2016 | 14:05 von firstdeathmaker »

Offline Antariuk

  • Legend
  • *******
  • Beiträge: 4.797
  • Geschlecht: Männlich
  • Username: Antariuk
    • Plus 1 auf Podcast
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #7 am: 5.10.2016 | 14:16 »
Die neue Vorschau ist gut, ich finde es jetzt aus dem Augenwinkel heraus besser sichtbar welches Hex das aktuell gewählte ist.

Was hälst du von der Idee eines Mouse-Overs für einzelne Hexfelder auf der großen Karte? Vielleicht mit Verzögerung, damit das nicht mit aufploppenden Infos nervt wenn man gerade nur eine bestimmte Hexnummer sucht die man eh für "volle" Informationen anklicken will, aber ich stelle mir das zugänglicher vor als die klassische Methode wo man immer viel hin- und herblättern muss.
Kleiner Rollenspielstammtisch: Plus 1 auf Podcast

"Ein Zauberer mag noch so raffiniert sein, ein Messer im Rücken wird seinen Stil ernsthaft versauen." - Steven Brust

Offline Talwyn

  • Hero
  • *****
  • Beiträge: 1.280
  • Geschlecht: Männlich
  • Username: Talwyn
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #8 am: 5.10.2016 | 14:17 »
Bin gerade in der Arbeit und habe dementsprechend keine Zeit hier alles durchzulesen, aber grundsätzlich finde ich die Idee interessant. Ich arbeite seit geraumer Zeit selbst an einer Tablet-App, die den Spielleiter am Spieltisch beim Leiten von Sandbox-Kampagnen unterstützen soll. Evtl. kann man hier ja Ideen austauschen. Die Hexmap sieht auf jeden Fall schonmal recht cool aus. Ich schreibe heute Abend mal mehr...
Playing: D&D 5E
Hosting: Old School Essentials, Dungeon World
Reading: So tief die Schwere See, Mothership

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #9 am: 5.10.2016 | 14:35 »
@Antariuk: Es gibt doch schon ein Mausover in der großen Map. Die Möglichkeit ist also durchaus da. Die Frage ist nur: Was genau pack ich da rein? Und ist es nicht vielleicht notwendig, dass der Inhalt anpassbar ist, da man, wenn man z.B. ein Singleplayer-Hex baut, man dort keine Spoiler drin haben möchte, aber als Multiplayer-Hex mit Spielleiter ganz andere Anforderungen hat?
Deinen Vorschlag von weiter oben habe ich definitiv auf dem Schirm, aber so lange da noch keine wirklichen Inhalte rein generiert werden (von den Standard-Texten mal abgesehen), weis ich nicht, was ich da noch so rein schreiben soll.

@Talwyn: Ja, gerne!

Offline Antariuk

  • Legend
  • *******
  • Beiträge: 4.797
  • Geschlecht: Männlich
  • Username: Antariuk
    • Plus 1 auf Podcast
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #10 am: 5.10.2016 | 14:43 »
Ich musste tatsächlich meinen Browser neu starten um die MouseOver zu sehen, krass... dann habe ich nichts gesagt! Das Problem mit Spoilern im Single- vs. Multiplayer klingt nachvollziehbar, aber da könnte man doch sicher eine Bedingung setzen dass Information X nicht angezeigt wird wenn zu Beginn Singleplayer als Modus gewählt wird?

Was mir gerade noch einfällt: wie generisch, bzw. genre-typisch soll das werden? Man könnte ähnlich wie z.B. dieser Dungeon-Generator hier auch gleich Stats für Kreaturen mitliefern, aber dann entscheidet sich auch wie High- oder Low Fantasy die Sache wird. Oder man bastelt mehrere Content Sets (was natürlich noch mehr Aufwand ist).
Kleiner Rollenspielstammtisch: Plus 1 auf Podcast

"Ein Zauberer mag noch so raffiniert sein, ein Messer im Rücken wird seinen Stil ernsthaft versauen." - Steven Brust

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #11 am: 5.10.2016 | 15:23 »
Naja, wie gesagt, mir geht es nicht darum, für alle Möglichen Fälle content-sets zu liefern, sondern darum, die Flexibilität ein zu bauen, dass man damit Verschiedenes machen kann. Meine eigenes Ziel ist es, ein Template bauen zu können, das mir Single-Player Pathfinder Abenteuer generiert, bzw. meine dazugehörige Welt. Da kann man also durchaus sehr spezifisch werden.

Auf der anderen Seite kann man aber auch, indem man einfach ein anderes Template nimmt oder ein bestehendes anpasst, seine eigene Welt bauen. Ich sehe das zusammenstellen von Zufallstabellen und Kreaturen sowie Encountern, welche die Welt bevölkern, immer auch als Teil der Weltenschöpfung. Schließlich kann man ja auch bei Pathfinder z.B. eine Welt erschaffen, in der es ausschließlich Dämonen gibt. oder Low/High Fantasy.

Da das System am Ende auf HTML basiert, kann man natürlich überall auch auf online Webseiten verweisen, so man denn möchte.

Edit: Ach so, ich für meinen Teil möchte eine konsistente Singleplayer-Pathfinder Sandbox Welt damit bauen. Ich denke, dass ist kompliziert genug, als dass alle anderen Fälle davon abgeleitet werden können, einfach, indem man nicht ganz so viele Funktionen des Systems nutzt. Ich hatte in der Richtung auch schon mal ein Konzept angefangen (siehe Anhang), aber dann immer wieder Änderungen eingebaut. Am Ende war es dann aber zu kompliziert, immer die Zufallsinhalte auszuwürfeln, daher jetzt dieser Ansatz. Das coole an so einer Singleplayer-Sandbox-Welt ist, dass man die ja auch Problemlos mit mehreren Spielern aber ohne Spielleiter spielen kann.

[gelöscht durch Administrator]
« Letzte Änderung: 5.10.2016 | 15:28 von firstdeathmaker »

Offline Antariuk

  • Legend
  • *******
  • Beiträge: 4.797
  • Geschlecht: Männlich
  • Username: Antariuk
    • Plus 1 auf Podcast
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #12 am: 5.10.2016 | 15:53 »
Uff, das ist ein gewagtes Projekt :o Klingt aber interessant, da würde ich gerne mehr von sehen.

P.S.: Ohne dass ich hier Paranoia schüren will, versuch vielleicht mal rauszufinden wo Paizo bzw. WotC die Grenze zwischen Generator und richtigem Spiel ziehen, weil man darf OGL-Inhalte nicht in digitale Spiele umsetzen (was bei Paizo ja auch zu dem mittlerweile geplatzten Pathfinder Online Projekt geführt hat das kaum Bezug auf echte Spielmechaniken nehmen konnte). Nur weiß ich grade nicht wie sich das im Einzelfall definiert.
Kleiner Rollenspielstammtisch: Plus 1 auf Podcast

"Ein Zauberer mag noch so raffiniert sein, ein Messer im Rücken wird seinen Stil ernsthaft versauen." - Steven Brust

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #13 am: 5.10.2016 | 19:16 »
Hmm, wo genau hast du das her, dass man keine digitalen Spiele damit umsetzen darf? Und "digitales Spiel" ist jetzt wirklich nicht so einfach zu definieren. Ich glaube, das Problem liegt da eher allgemein an den Inhalten, also das man ohne Erlaubnis nicht einfach die Monster benutzen darf, die nicht unter der OGL stehen. Der Generator selbst ist ja davon erst mal ausgenommen, der generiert ja nur aus den Templates. Das generierte Produkt und die Templates selbst könnten allerdings unter irgendwas fallen, das stimmt.

Ich bin noch mal einen großen Schritt weiter gekommen. So weit, dass ich euch schon mal die erste Version zum herum spielen geben kann. Ich hab den Download des Codes mal oben am Ende des Startposts eingefügt. Ich hab da auch eine Readme drin liegen, wo beschrieben wird, wie man die Templates zusammen baut. Ist aber alles noch WIP.

Was dazu gekommen ist:

Ich kann jetzt 2 verschiedene Template-Formate einlesen:

.txt Dateien wie bisher.
.py Dateien, also script-Dateien, mit denen sich die Texte VOLLKOMMEN dynamisch erzeugen lassen. Damit kann man quasi ALLES umsetzen.

Python Beispiel, eine zufällige Textauswahl für die Rocky Desert:
(Klicke zum Anzeigen/Verstecken)

Also sind zwei Extreme schon eingebaut: Extreme simplizität in Form der Textdateien, und extreme Komplexität mit den .py scripten. Mit den .py Scripten könnte man jetzt quasi einen Drachen platzieren, in den umgebenden Hex-Feldern Markierungen setzen und dann in anderen Scripten diese Markierungen auslesen und darauf wieder Text generieren. Allerdings ist das Ganze etwas zu kompliziert zu handhaben. Ich lasse es nur drin, um die volle Flexibilität zu gewährleisten.

Die eigentliche Richtung in die ich gehen möchte ist, mächtige, aber einfach zu bedienende Funktionen einzubauen. Eine dieser Funktionen ist jetzt schon drin, ein einfacher Zufallsgenerator. Wenn man für einen Landschaftstyp verschiedene Beschreibungen hat, aus denen zufällig ausgewählt werden soll, dann muss man sie einfach nur folgendermaßen bennenen und in den template/content Ordner packen:

"Farmland.1.txt", "Farmland.2.txt", "Farmland.3.txt".

Das funktioniert genau so auch mit Feature Texten, Hexfeld-Individuellen Beschreibungstexten und auch allen anderen Dateiarten. Man kann also auch zufällig verschiedene Scripte ausführen lassen.

Die eigentliche Arbeit ist jetzt aber, eine Zwischenform zwischen den einfachen Textdateien und den Scripten zu schaffen. Dafür nehme ich .xml Dateien. Die Grundlagen dafür habe ich schon gelegt, sie werden schon eingelesen, aber ich bin mir noch nicht ganz sicher, wie ich das Weltendesign dahinter konstruiere. Einen Ansatz habe ich ja schon weiter oben gepostet, aber das ist noch nicht ganz ausgereift.

Offline Antariuk

  • Legend
  • *******
  • Beiträge: 4.797
  • Geschlecht: Männlich
  • Username: Antariuk
    • Plus 1 auf Podcast
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #14 am: 5.10.2016 | 23:36 »
Mit Python 3.5.2 habe ich leider folgende Fehlermeldung:

Kleiner Rollenspielstammtisch: Plus 1 auf Podcast

"Ein Zauberer mag noch so raffiniert sein, ein Messer im Rücken wird seinen Stil ernsthaft versauen." - Steven Brust

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #15 am: 6.10.2016 | 09:01 »
Ich empfehle, Python zusammen mit Anaconda zu installieren, ein Softwarepaket, das schon viele oft benötigte Bibliotheken mit bringt, die dann nicht extra nachinstalliert werden müssen.  Ich hab meine Umgebung gerade eben auch auf 3.5.2 upgedatet und bei mir läuft alles.

Bei dir scheint es sich um ein Visual C++ Problem zu handeln, hab HIER was dazu gefunden (Teile des Python scriptes bzw. der Bibliotheken werden in C++ kompiliert oder nutzen C++ code). Es kann sein, dass das Problem aber auch dadurch behoben werden kann, dass du einfach Anaconda installierst.

Nachdem ich gestern noch ein wenig mit den Templates herum gespielt habe, ist mir aufgefallen, dass vor allem die Textfiles und das Layout nicht ganz so optimal sind. Wenn man einen Landschaftstyp und z.B. eine Siedlung als Feature hat, dann erst der Text des Landsschaftstyps, dann der Text des Features und danach die Hex-Navigation angezeigt. Irgendwie brauch ich ein einheitliches Layout, damit das Ganze besser aussieht.
« Letzte Änderung: 6.10.2016 | 09:15 von firstdeathmaker »

Offline Talwyn

  • Hero
  • *****
  • Beiträge: 1.280
  • Geschlecht: Männlich
  • Username: Talwyn
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #16 am: 6.10.2016 | 13:16 »
Ok, hab's mir mal alles durchgelesen und das klingt tatsächlich sehr interessant. Evtl. kann man da wirklich Synergien finden. Ich erkläre vielleicht gerade mal, woran ich gerade arbeite:

Ich entwickle gegenwärtig eine App für Android Tablets, die dem Informationsmanagement beim Leiten von Sandbox-Kampagnen dienen soll. Mein Ansatz ist dabei allerdings definitiv nicht eine Art Spiel zu entwickeln, die App soll den Spielleiter beim guten alten Tischrollenspiel dabei unterstützen den Überblick zu behalten und den Spielfluss an sinnvollen Stellen zu beschleunigen. Hinsichtlich des Automatisierungsgrads bin ich dabei noch sehr unschlüssig. Man könnte da ganz viel machen, aber gerade die Fraktion der Oldschool-DMs will erfahrungsgemäß die Ergebnisse von Zufallstabellen selbst interpretieren.

Grundsätzlich zeigt die App zunächstmal eine Hexmap an und bietet ein Interface, das es leicht macht, mit der Karte zu interagieren - denkt an Google Maps mit den bekannten Features wie Pan & Zoom via Touch-Gesten. Tippt man ein Hexfeld an, so öffnet sich eine Beschreibungsseite, die zunächst mal eine allgemeine Beschreibung enthält. Zusätzlich wird hier eine Liste aller POIs auf diesem Feld angezeigt. Tippt man einen solchen an gelangt man zu einer Beschreibungsseite des POIs, oder wahlweise zu einer untergeordneten Karte - wie z.B. einer Dungeon-Karte, die dann über das bekannte Karteninterface betrachtet werden kann - und auch hier gibt es interaktive Kartenregionen (in Dungeons z.B. die einzelnen Räume). Tippt man diese Hotspots an, so gelangt man... genau: Wieder auf eine Beschreibungsseite oder eine untergeordnete Karte. So können z.B. mehrere Dungeon-Ebenen verknüpft werden, oder in einer Stadt gibt es zunächst eine Übersichtskarte, die in die einzelnen Stadtviertel gegliedert ist, gefolgt von detaillierten Karten der einzelnen Distrikte mit Hotspots für interessante Locations (Läden, Tempel, etc.)

So gesehen ist die App also eine Art "digitales Abenteuerbuch mit interaktiven Features". Was ich unbedingt haben will ist ein Tracking der Ingame-Zeit: Die SC reisen von Hex A nach Hex F? Ok, das dauert 3 Tage und 15 Stunden. Die Gruppe rastet? Ok - 8 Stunden vergehen. Die Gruppe hat Downtime in der Stadt? Bitte Dauer eingeben. Eine Herausforderung hierbei wird es sein, unterschiedliche (fiktive) Kalender zu unterstützen. Für den Anfang werde ich wohl einfach die Tage seit Beginn der Kampagne zählen. Anschließend kann man sich Gedanken machen, wie man das dann z.B. auf den Kalender von Harptos mappt.

Auch die gegenwärtige Position der Gruppe und den Explorationsfortschritt soll die App protokollieren. Aus diesen Daten ergeben sich dann zwei Artefakte: Ein Kampagnen-Log, das neben den aus den App-Daten generierten Inhalten auch noch manuell bearbeitet werden kann, sowie eine Spielerkarte, die eben nur den erforschten Teil der Sandbox enthält. Beides sollte man exportieren und teilen können - in welcher Form auch immer (Kampagnentagebuch z.B. als PDF-, Word-, ODF- oder Textdatei, Karte als Bild).

Soweit ist es das eigentlich, was mir im Moment vorschwebt. Als noch nicht weiter durchdachte Ideen denke ich, dass Funktionen zur Verwaltung von NSC und Fraktionen interessant wären, evtl. kombiniert mit einem Reputationssystem - oh, und ein Questlog.
Playing: D&D 5E
Hosting: Old School Essentials, Dungeon World
Reading: So tief die Schwere See, Mothership

Offline Antariuk

  • Legend
  • *******
  • Beiträge: 4.797
  • Geschlecht: Männlich
  • Username: Antariuk
    • Plus 1 auf Podcast
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #17 am: 6.10.2016 | 13:23 »
@Talwyn: das klingt nach einem sehr nützlichen Tool! Zeig davon, wenn du magst, ruhig mehr :)

Was mir gerade, wo ich Talwyns Beschreibungen vom Tracken von Zeit lese, einfällt: wäre es nicht auch nützlich wenn man den zurückgelegten Weg auf der Hexmap - bei beiden euren Projekten - als Pfad angezeigt bekäme, bzw. das Programm automatisch eine einblendbare Linie zwischen allen besuchten Hexfeldern zieht? Das würde sowohl für SL als auch Spieler total nützlich sein (vor allem wenn man z.B. in Pathfinder die XP-pro-Hexfeld Regel benutzt und sich irgendwann nicht mehr sicher ist wie viele es waren).
Kleiner Rollenspielstammtisch: Plus 1 auf Podcast

"Ein Zauberer mag noch so raffiniert sein, ein Messer im Rücken wird seinen Stil ernsthaft versauen." - Steven Brust

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #18 am: 6.10.2016 | 16:58 »
@Antariuk: Das wäre bei meinem Generator nicht so ohne weiteres machbar. Das liegt einfach daran, dass ich mit statischen Webseiten arbeite und nicht mit .php oder javascript. Ich müsste also für jede Mögliche Kombination an Pfaden etwas vorbereiten und da wird es Problematisch.

@Talwyn: Das klingt ähnlich wie RealmWorks, nur das die einen etwas freieren Ansatz wählen. Was aber auch nicht so 100% immer gut klappt. Ich leite selbst schon 1,5 Jahre mit RealmWorks eine Art Sandbox, allerdings eine, bei der ich immer Gegenden in die es die Helden verschlägt von Hand vorbereite. D.h. ich zeichne Dungeons, erstelle NPC und Gegner, erfinde eine Situation (keinen Plot) und platziere Schätze. Das mit dem Zeit-Tracking finde ich gut, allerdings würde ich das konfigurierbar machen. Ich arbeite z.B. mit 12-Meilen Hexfeldern von Pathfinder, ich weis aber auch, dass 10, 6 oder 5 Meilen üblich sind. Mit entsprechend anderen Zeiten und abhängig davon, ob man zu Fuß oder mit Reittieren unterwegs ist verändert sich das natürlich.

Die Kunst ist, eine klare Kante zu finden, wie Detailliert man das Ganze gestalten möchte. Legt man zu viel fest, kann das für einen ganz bestimmten Fall sehr gut passen, aber auch schnell einschränkend wirken (z.B. wenn du fix sagst, das eine Reise von Hex A nach Hex B so und so lang dauert).

Und was das Exportieren der aufgedeckten Karte und des Kampagnienlogs angeht, wäre es nicht cooler, wenn die Spieler einfach die Gleiche App nutzen könnten, aber eben in einer Art Spielermodus? Sie könnten sich mit der App des Spielleiters verbinden und die Apps könnten sich gegenseitig synchronisieren. Dann würde der lästige Export etc. wegfallen.

Aber bevor du das zu kompliziert machst: Ich würde das Ganze schrittweise angehen. Nicht zu viel auf einmal und jedes Feature mit Bedacht überlegen. Ich bin ja jetzt selbst auch erst mal an einem Punkt, wo ich sorgfältig planen muss, damit es gut und einfach wird. Vielleicht werde ich das auch erst mal ganz simpel anfangen, mit einfachen Monstern.

Offline firstdeathmaker

  • Experienced
  • ***
  • Beiträge: 189
  • Username: firstdeathmaker
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #19 am: 7.10.2016 | 18:13 »
Soo, bin jetzt noch ein gutes Stück weiter gekommen. Ich hab jetzt "Events" eingebaut. Mit diesen kann man dann z.B. Encounter generieren. Das ganze funktioniert mit XML Dateien die in einem bestimmten Ordner liegen.

Als Beispiel hier mal mein Test-XML-File:

(Klicke zum Anzeigen/Verstecken)

Zur Erklärung:

<conditions> leitet immer einen Bedingungsblock ein. In diesem können Bedingungen geschachtelt verbaut werden, die dann, wenn für ein Hexfile geschaut wird, welche Events es dort geben kann, geprüft werden. Folgende gibt es bisher:

<and/or/nor/nand/not>
normale logik. Ein and block ist z.B. immer dann Wahr, wenn alle darin enthaltenen Bedingungen Wahr sind. nor und nand sind jeweils eine kombination aus einem not und einem and bzw. or, der bequemlichkeit wegen. Vielleicht bau ich auch noch ein xor ein, mal schauen. Kommen wir zu den interessanteren:

<hasattribute name = "" range="">
Ist immer dann Wahr, wenn ein Hexfeld innerhalb der angegebenen Distanz ein Attribut mit diesem Namen hat. Im Moment werden die Features noch einfach als Attribut an die Hexfelder geklemmt. Deshalb kann man das nehmen, wenn man schauen möchte, ob auf dem gleichen Hex (range = 0) oder in der Umgebung (range > 0)  bestimmte Features existieren. Die range ist bisher noch nicht funktional, man kann also bisher nur auf das aktuelle Hex testen. Aber das kommt noch.

<hasvalue name="" value="" min="" max="">
Damit kann man konkrete Werte von Attributen abfragen. Entweder man nutzt einen konkreten Wert, indem man "value" ausfüllt, oder man benutzt min und/oder max Zahlen um einen Wertebereich anzugeben. Man könnte z.B. sagen:
<hasvalue name="h" max="10"> und dann würde es nur dann Wahr sein, wenn die horizontale Koordinate des Hexfeldes maximal = 10 ist. Ich plane hier auch noch einen range parameter ein zu bauen, ist aber WIP.

<probability value="">
Dies ist Zufällig Wahr oder nicht Wahr. Man kann eine Wahrscheinlichkeit angeben, mit der es Wahr sein soll. So lassen sich seltene Monster darstellen, nicht nicht immer in bestimmten Terrain vorkommen. <probability value="0.01"> bedeutet z.B., das das Event nur bei 1% der Hexfelder überhaupt vorkommen kann.

So, weiter gehts. Wie man im Beispiel sieht, gibt es ein "events" und zwei "event" elemente. Die Bedingungen die man direkt unter "events" definiert hat, gelten für alle weiter unten definierten "event" elemente. Das habe ich deshalb so gemacht, damit man gemeinsam benutzte Bedingungen nicht immer wieder neu schreiben muss. Man kann z.B. so global für Goblins bestimmen, in welchen Landschaftstypen sie vorkommen sollen. Und dann aber bei den einzelnen Encountern noch mal weiter einschränken, das sie z.B. nur bei bestimmten Schwierigkeitsgraden oder so vorkommen sollen. Oder mit unterschiedlichen Wahrscheinlichkeiten. Ok, schauen wir uns ein Event an:

<event tableWeight=""> Das tableWeight attribut gibt an, wie stark es in der Begegnungstabelle eines Hexes vorkommen kann, wenn es denn dafür in Frage gekommen ist. Die Begegnungstabelle ist immer eine W100 Tabelle, die Würfelrange für ein bestimmtes Event wird dann Anteilig nach seinem tableWeight berechnet. Unter dem <event> element kann man noch einmal conditions einbauen, oder aber eben mit html den Encounter formulieren.

Wenn das event bei einem Hexfeld vorkommt, wird für dieses eine Datei angelegt und von der Begegnungstabelle des Hexfeldes auf diese Datei verlinkt. Der Start und End html-tag werden vom Generator mit einem Header und einem Footer versehen, in dem ein Link zurück auf das Hexfeld platziert wird.

Soo, das wars erstmal. Es gibt leider noch nichts neues zum Ausprobieren, weil ich erst noch ein paar Baustellen und Bugs beheben möchte. Aber das Konzept funktioniert soweit schon ganz gut. Es wird... Es wird ;)


Edit: hab doch noch wenigstens die live demo aktualisiert. Schaut mal bei den Dörfern, da sind die encounter von oben immer da.



« Letzte Änderung: 7.10.2016 | 19:00 von firstdeathmaker »

Offline Bad Horse

  • Erste Elfe
  • Titan
  • *********
  • Zimt macht die Gedanken weich!
  • Beiträge: 32.544
  • Username: Leonie
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #20 am: 10.10.2016 | 17:26 »
Ich habe das Kalenderprojekt mal abgetrennt, ihr findet es hier: http://www.tanelorn.net/index.php/topic,100105.0.html
Zitat von: William Butler Yeats, The Second Coming
The best lack all conviction, while the worst are full of passionate intensity.

Korrekter Imperativ bei starken Verben: Lies! Nimm! Gib! Tritt! Stirb!

Ein Pao ist eine nachbarschaftsgroße Arztdose, die explodiert, wenn man darauf tanzt. Und: Hast du einen Kraftsnack rückwärts geraucht?

Offline Skeeve

  • Hero
  • *****
  • Beiträge: 1.624
  • Geschlecht: Männlich
  • Username: XoxFox
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #21 am: 13.10.2016 | 23:19 »
Hallo,

ich wollte euch mal ein kleines Projekt vorstellen, an dem ich gerade arbeite. Es geht um die Erstellung einer Hexcrawl-Sandbox, bzw. inzwischen darum, ein kleines script zu schreiben, das einem Weltenbauer dabei unterstützen soll, ein eben solches zu erstellen. Am coolsten wäre es, wenn dabei nachher etwas heraus kommt, dass man sogar als Single-Player spielen kann, oder alternativ eben mit einem Spielleiter, der aber einem festen Set aus Regeln folgen kann.

Die Grundidee ist die folgende: Ich möchte, dass der Weltenbauer nur das machen muss, worauf er wirklich Lust hat und der Rest soll automatisch von Script ausgefüllt und sinnvoll ergänzt werden. Und das Ganze soll nachher als statische HTML-Seite vorhanden sein, sodass man es ohne Sicherheitsbedenken auf seine eigene Homepage laden kann oder auch lokal verwenden kann.

Hier dachte ich zuerst ja noch "Interessantes Projekt, klingt ungefähr nach dem was ich auch vorhabe. Aber vermutlich mit wenig interessanten Sprachen (PHP und Javascript) gemacht.". Ich glaube dass es da noch nicht den Download-Link mit dem Hinweis auf Python beim ersten Posting gab.

So habe dann erst hier ...
Ja, das ist machbar. Zum technischen Hintergrund: Ich schreib das ganze in Python 3.4 und nutze für die Bilder OpenCV.

gemerkt: ich bin dabei!  :D

Gut, ich bin hier noch bei Python 2.7, aber das kann man ja noch ändern und mit OpenCv wollte ich mich schon seit längerem mal beschäftigen [habe gerade mal kontrolliert wann ich mir da zuletzt Webseiten zum Thema angeschaut hatte... doch schon mehr Jahre her als ich dachte :-\ immer die gleichen Probleme: wenn man arbeitet oder sich Rollenspielabenteuer ausdenkt, dann kann man nicht programmieren und wenn man den Tag mit Arbeit und danach mit privater Programmierung verbringt, dann kann man sich keine Rollenspielabenteuer ausdenken...  :( die Tage sind einfach zu kurz und es gibt einfach zuviel Arbeitstage]

Wobei ich hier noch dabei bin meine eigene, sehr unvollständige, Liste mit den Daten der Hexfelder meiner Welt mit den Daten aus den Hexographer-Karten zu füllen. Die Daten einiger Felder die schon von der Gruppe besucht wurden hatte ich per Hand  in eine Python-Liste geschrieben, aber auf Dauer wird das anstrengend und fehlerträchtig und wenn man die Geländedaten sowieso schon als Hexographer-Datei vorliegen hat....

Die Daten, die ich mir notiere, sind neben den Koordinaten der Hexfelder übrigens Primary Terrain und die Major-/Minor-Encounter (deutsche Übersetzung vom Eisenhöfer) und wird noch mehr.

Noch nicht ganz fertig, aber nun bin ich erstmal beim zweiten Schritt: da meine Hexographer-Karten noch zu über 70% aus den sprichwörtlichen "weisen Flecken auf der Landkarte" bestehen, mir der Terrain Wizard vom Hexographer nicht so gefällt (ich kann da nicht verschiedene Methoden die Landkarte zu füllen ausprobieren) und ich eine interessant klingende Beschreibung irgendwo im Web gefunden hatte, mache mir so etwas wie den Terrain Wizard eben selbst.

Ok, hab's mir mal alles durchgelesen und das klingt tatsächlich sehr interessant. Evtl. kann man da wirklich Synergien finden. Ich erkläre vielleicht gerade mal, woran ich gerade arbeite:

Ich entwickle gegenwärtig eine App für Android Tablets, die dem Informationsmanagement beim Leiten von Sandbox-Kampagnen dienen soll. Mein Ansatz ist dabei allerdings definitiv nicht eine Art Spiel zu entwickeln, die App soll den Spielleiter beim guten alten Tischrollenspiel dabei unterstützen den Überblick zu behalten und den Spielfluss an sinnvollen Stellen zu beschleunigen. Hinsichtlich des Automatisierungsgrads bin ich dabei noch sehr unschlüssig.

Ja, die Beschreibung kommt mir auch irgendwie bekannt vor.  ;) Wobei mein Python-Script ursprünglich als Ausgabe entweder PDF erzeugen sollte (wenn ich wüsste und Erfahrung mit der PDF-Erzeugung mit Python hätte, dann könnte ich das vielleicht auch bei der Arbeit verwenden) oder HTML-Seiten und nur eine einfache Hexkarte mit Textliste der Inhalte der Hexfelder liefern sollte. So etwas wie die (Sub-)Sektorkarten bei Traveller. 

Aber seitdem ich nun auch ein Android-Tablett besitze, denke ich über eine GUI-Anwendung (unter Windows und Android mit Kivy nach oder doch wieder PDF oder HTML...
... 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.624
  • Geschlecht: Männlich
  • Username: XoxFox
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #22 am: 13.10.2016 | 23:28 »
@Antariuk: Das wäre bei meinem Generator nicht so ohne weiteres machbar. Das liegt einfach daran, dass ich mit statischen Webseiten arbeite und nicht mit .php oder javascript. Ich müsste also für jede Mögliche Kombination an Pfaden etwas vorbereiten und da wird es Problematisch.

Ich würde sagen "Jain"... wenn man den "Single Player"-Gedanken mal aussen vor läßt und bei der "Unterstützung eines Spielleiters" bleibt (und beim Begriff "Abenteuertagebuch"), dann könnte der Spielleiter nach einem Spielabend entweder irgendwie in den Templates oder im Hexographer die Hexfelder markieren die die Charaktere an dem Spielabend besucht haben und danach könnte der Generator dann aktualisierte Karten  (mit Markierungen/Linien oder was auch immer auf dne besuchten Hexfeldern) ausspucken.
... 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 Antariuk

  • Legend
  • *******
  • Beiträge: 4.797
  • Geschlecht: Männlich
  • Username: Antariuk
    • Plus 1 auf Podcast
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #23 am: 13.10.2016 | 23:30 »
Ich würde sagen "Jain"... wenn man den "Single Player"-Gedanken mal aussen vor läßt und bei der "Unterstützung eines Spielleiters" bleibt (und beim Begriff "Abenteuertagebuch"), dann könnte der Spielleiter nach einem Spielabend entweder irgendwie in den Templates oder im Hexographer die Hexfelder markieren die die Charaktere an dem Spielabend besucht haben und danach könnte der Generator dann aktualisierte Karten  (mit Markierungen/Linien oder was auch immer auf dne besuchten Hexfeldern) ausspucken.

Hell Yeah, das wäre cool! :d
Kleiner Rollenspielstammtisch: Plus 1 auf Podcast

"Ein Zauberer mag noch so raffiniert sein, ein Messer im Rücken wird seinen Stil ernsthaft versauen." - Steven Brust

Offline Talwyn

  • Hero
  • *****
  • Beiträge: 1.280
  • Geschlecht: Männlich
  • Username: Talwyn
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #24 am: 14.10.2016 | 08:48 »
Aber seitdem ich nun auch ein Android-Tablett besitze, denke ich über eine GUI-Anwendung (unter Windows und Android mit Kivy nach oder doch wieder PDF oder HTML...

Kivy kenne ich nicht, aber ich bin auch in der Python-Welt nicht unterwegs. Ich hatte tatsächlich auch schon darüber nachgedacht, ob es nicht sinnvoll wäre, die App mit einem Framework wie Ionic zu erstellen. Das hätte den Reiz, dass man sie dann sowohl im Web als auch auf diversen Mobile Devices laufen lassen könnte - und mit einer Runtime wie Electron könnte man das ganze dann auch noch als Desktop App ausliefern. Das wäre schon ziemlich mega :)
Playing: D&D 5E
Hosting: Old School Essentials, Dungeon World
Reading: So tief die Schwere See, Mothership

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.624
  • 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.624
  • 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.168
  • Username: Shihan
Re: Hexcrawl Weltenbau Support Tool - Brainstorming
« Antwort #29 am: 9.05.2018 | 12:09 »
Gibt es eigentlich Neuigkeiten oder ruht das Projekt?