NaNoGenMo / 2017

National Novel Generation Month, 2017 edition.
https://nanogenmo.github.io
185 stars 7 forks source link

Lives of the Azar, by Idrizink Erebzidy #39

Open ben-32 opened 6 years ago

ben-32 commented 6 years ago

Lives of the Azar. Written by Idrizink Erebzidy (1215 - 1297), presented to Queen Maki Denkage (1248 - 1275). A collection of historic texts, covering some 1000 years of history from the land of Azar. Accompanied by maps and appendices.

One place where random content shines, I think, is as inspiration for human authors. Things like the random NPCs from https://donjon.bin.sh or the villages in Annals of the Parrigues make excellent resources for worldbuilding. I want to experiment with creating a 'novel' usable as a starting point for hand-crafting a fictional setting.

I plan to simulate a couple thousand software agents. These will interact semi-randomly, creating a history with tens of thousands of events. Agents can then be selected, and events relating to them collected into individual chapters. This will produce a collection of intertwined narratives - the novel - padded out with appendices listing notable agents and places.

Note: Description updated to match procedurally generated output.

ikarth commented 6 years ago

I'm going to be curious to see how it goes. It strikes me as a potentially fruitful vein for a lot of future generators.

You might want to look up how Dwarf Fortress and Caves of Qud generate their histories, though Annals of the Parrigues is the gold standard at the moment.

ben-32 commented 6 years ago

Still working on Lives of the Azar. Predictably, I've been delayed by joining ProcJam in November (I made procedural music!), but development is going well!

The framework for generating text is pretty solid (see output below). I'll give myself another week or two for putting in more events (hopefully childbirth, emigration, murder, and religion founding) and then call it done. Sorry there's no public code yet - I'm working with SVN and plan to migrate to Git when I'm done.

Thriachdach was born in Krukant-kiz during the Spring of 100.

She began a 64 year relationship with Sebra during the Spring of 118. She married zir during the Summer of 119.

She began a 9 month relationship with Brakla during the Autumn.

She married Sebra during the Summer of 119. As a result, her and Brakla's relationship ended

She began a 55 year relationship with Bringbreg during the Autumn of 127.

She fell ill during the Autumn of 187. She recovered from her illness 4 weeks later.

She fell ill during the Summer of 193. She died from from an illness. She was 93 years old.
ben-32 commented 6 years ago

Lives of the Azar has now been completed! You can download it from http://recursegames.com/assets/projects/lives-of-the-azar/lives-of-the-azar-v1.pdf.

It is the product of ~1000 years of procedurally generated history, in which simulated people go about their lives: marrying, having children, murdering each other, and founding religions and nations. Records of events have been collected for different topics (individual people, locations, etc) and compiled into the final work. It is presented as a historical text, written by Idrizink Erebzidy (an actual person from the simulation).

The simulation includes birth, death, romance, adoption, marriage, divorce, jealousy, murder, religious conversion, vassalage, emigration, plague, and monarchies. I've finished 2 weeks late, but I'm really happy with the result.

I'll be uploading source code shortly, as well as a generated encyclopedia (containing linked webpages for all objects in the simulation).

ben-32 commented 6 years ago

The generated encyclopedia (from which the novel was built) is now available at http://recursegames.com/assets/projects/lives-of-the-azar/second-draft/output.html

tra38 commented 6 years ago

Looking forward to the source code too. :+1:

ben-32 commented 6 years ago

Sorry for the delay, everyone. Finally moved Lives of the Azar out of SVN and into Git.

Source code now available at https://gitlab.com/RecurseGames/Azar.

Some of it's pretty rough, but hopefully I'll clean things up at some point. I used some of my own pre-existing libraries (for things like queuing events), but everything else (the simulation and natural language generation) was done in about 5 weeks (so slightly overtime). Enjoy.