Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Utility idea, need guidance/recommendations  (Read 1760 times)

delphonso

  • Bay Watcher
  • menaces with spikes of pine
    • View Profile
Utility idea, need guidance/recommendations
« on: February 10, 2021, 06:51:38 am »

I had an idea which I think would be a good addition to DF and is also within my range of coding capacity.

I want to make a utility which writes a short story from the legends dump. An example of how I think this would work is it could take a death event (let's say, a dragon). It would then recount two or three events from the dragon and the dragon slayer and present them in chronological order:

In year 0, the dragon was born.
In year 37 it settled in The Dank Hills
In year 40, Urist began wandering
In year 45 the dragon was slain by Urist.

Pretty barebones of an idea right now, but I hope to flesh it out and not get a lot of useless points. I expected the xml dump to be...well a database in excel. Instead I could only open it with notepad++ and it was an overwhelming experience.

Any guidance on where to start, or how the legends dump works/is organized would be greatly appreciated.

PatrikLundell

  • Bay Watcher
    • View Profile
Re: Utility idea, need guidance/recommendations
« Reply #1 on: February 10, 2021, 08:18:53 am »

Have you used Legends Viewer (or the browser based alternative)? If you locate the dragon in Legends Viewer you'll get a list of all events it's linked to (or at least those the the export functionality links it to), which looks pretty much like your description, although you get all the points, including the ones you might consider useless.

Legends exports are basically organized the same as historical info is within the DF structures, although it can sometimes include things that haven't been mapped. References within entries are the same numbers as those used within the corresponding DF structures, so Urist is presented with an id of A and the dragon is presented with an id of B, and the event where Urist kills the dragon is presented as id A slayed id B at region id C (or site C).

All in all, legends info is rather bare bones, so interesting stories is more a matter of somehow finding the cases where the events form an interesting chain rather than trying to look at a random character and hope to extract an interesting story.
Typical case:
- Urist was born in 123 in Hamlet
- In 160 Urist moved to Town
- In 168 Urist married Meng
- In 180 Urist was slain by the dragon Foo during Foos 3.rd rampage of Town

You can't look for the number of entries either, as you may get the bookkeeper that embezzled funds 200 times and then died of old age.
Logged

delphonso

  • Bay Watcher
  • menaces with spikes of pine
    • View Profile
Re: Utility idea, need guidance/recommendations
« Reply #2 on: February 10, 2021, 08:40:51 am »

LegendsViewer is what inspired it. I want to make something that presents info to you rather than letting you dig for it. The culling process would mean a lot of cutting embezzling and moving, and I'm certain it will be more misses than hits in generating a short blurb to inspire the player to dig deeper with a tool like LegendsViewer.

My target audience would be more new players, I think, rather than veterans.

Nilsolm

  • Bay Watcher
    • View Profile
Re: Utility idea, need guidance/recommendations
« Reply #3 on: February 11, 2021, 06:27:07 am »

I think it would be more interesting if you combed the legends to look for events that are connected in some way, and instead of presenting them as individual events, you generate a more coherent short story out of it. For example, here's something I found quickly in a legends.xml I had lying around:

Quote
18 In 1, Abli settled in  Breedmines the Goad of Scratches
[...]
59940 In midautumn of 77, Abli attacked  The Sandaled Gold in  Guildtaken
59941 In midautumn of 77, the dwarf Vutok Clinchedtheater was struck down by Abli in  Guildtaken in The Courteous Jungles
[...]
[23 other kills]
[...]
59964 In midautumn of 77, Abli routed  The Sandaled Gold of  The Impervious Wheel and destroyed  Guildtaken


55370 In 75, Vutok became baroness of  The Impervious Wheel
55371 In 75, Vutok settled in  Guildtaken

This could be turned into something like:

Quote
Abli Taxflare the Sweltering was a dragon born before time. In the year 77, he attacked Guildtaken, a dwarven hillock of the The Sandaled Gold. He killed 24 residents, including the local baroness Vutok Clinchedtheater. Guildtaken was destroyed during the attack.

I am not sure how feasible this would be though. I imagine it wouldn't be trivial to looks for a chain of events that is in some way interesting enough. It sounds like it could get rather complex.
Logged

McArcady

  • Bay Watcher
  • working on a mysterious construction
    • View Profile
    • LinuxDwarfPack - a ready-to-play pack for Linux
Re: Utility idea, need guidance/recommendations
« Reply #4 on: February 19, 2021, 05:57:08 pm »

Legends Browser (a browser-based alternative to Legends Viewer) allows filtering events in a way that nicely renders the story of any historical figure (or any creature, fortress, artifact, ...).
This is what it looks like for a dragon:
Spoiler (click to show/hide)

By the way, we have an open discussion topic on how to improve the rendering and filtering of events in Legends Browser.
If you would like to share ideas on how to make this look even better, let us now!
« Last Edit: February 19, 2021, 06:04:29 pm by McArcady »
Logged