2018 icon indicating copy to clipboard operation
2018 copied to clipboard

High Fantasy with Language Generator

Open Alamantus opened this issue 5 years ago • 17 comments

I'm gonna try jumping in a little bit late, but hopefully I'll at least get a little bit farther than last year!

I think the hardest part for me will be getting a plot structure working. I'm thinking of implementing a simple RPG system to help it make decisions and count the number of words generated to help keep the plot under control.

I'll try to keep this updated as I work, and hopefully I'll be able to finish something!

Here's my repo: https://github.com/Alamantus/nanogenmo2018

Update Nov 27, 2018:
https://github.com/NaNoGenMo/2018/issues/60#issuecomment-442159194

Here's the output I'm submitting for NaNoGenMo: https://raw.githubusercontent.com/Alamantus/nanogenmo2018/NaNoGenMo2018-end/novel.txt

Thanks for following along with me!

Alamantus avatar Nov 10 '18 02:11 Alamantus

Alright, I've got the language generator going, and I've set it up to accept configs to exclude certain consonants/combinations! It names the language according to its letter collection and can generate words. Here's an example of some outputs:

human, example ancient (Aethaesmio) word: oniemoo
elf, example elvish (Liolo) word: baaleuyae
dwarf, example dwarvish (Crobrouchospaipl) word: taiflee
orc, example orcish (Vo) word: egl
goblin, example goblin (Sniusloepruasriodl) word: kriokhicleucl

human, example ancient (Swi) word: usiacojocl
elf, example elvish (Iucoitoa) word: oeriumuuw
dwarf, example dwarvish (Reesnaebetio) word: esnoocoochiose
orc, example orcish (Osle) word: av
goblin, example goblin (Uekaireafree) word: grukreepeacha

human, example ancient (Greebrok) word: ohoubiaswa
elf, example elvish (Rifoir) word: kouyiir
dwarf, example dwarvish (Traetae) word: ozaebriogleach
orc, example orcish (Mlaprar) word: ovomlo
goblin, example goblin (Uebuebliuxai) word: eatwoopoebloebrea

Next step is generating characters and stats!

Alamantus avatar Nov 10 '18 18:11 Alamantus

Alright, we're getting underway with character creation. Right now, it just allows them to introduce themselves with a simple personality and output a description. The grammar is a little bit off for generating articles, but I'll work that out as I go:

A feminine elf who is about 5.9 feet tall and wearing a yellow-and-brown leather armor with a yellow greaves steps up and says, "I am Uifoafualam of the Uadui clan."

But a male orc who is about 6.9 feet tall and wearing a tan-and-yellow blouse with a green loincloth and a tan-and-green floppy hat on his head stands in her way and says, "I am Thomloj of the Trob clan. Nice to meet you!"


A masculine elf who is about 6.1 feet tall and wearing a red-and-purple leather armor with a blue pants steps up and says, "I am Ubiibii of the Busaesaiyoab clan. And don't you forget it!"

But a nonbinary orc who is about 7.2 feet tall and wearing a brown leather armor with a white loincloth and a green cap on their head stands in his way and says, "I am Oslu of the Mruth clan."

Alamantus avatar Nov 10 '18 20:11 Alamantus

I'm working on building chapters based on progress, and so far I have introductory chapters and middle chapters, though the middle chapters are simply an introduction of where the party is at the moment. Here's a sample of one generation with the formatting so far, even though there's not too much different yet:

The Restoration Of Gir A fantasy novel generated by Robbie Antenesse [email protected] for NaNoGenMo 2018

Chapter 1

"Spistop Dilin imrod smosmozl odo gip otri igi rikr rikr no kridlip mlithi spodl."
―Dlosmolo Imrog, ancient orc warrior

When Osmisn Dosron, the destroyer, overtook the citadel of Gir with his horrible army, Laoy suffered a horrible loss.

A male elf who is about 6 feet and 8 inches tall and wearing a green shirt with an orange-and-green greaves and a yellow cowl on his head steps up and says, "I am Lololais of the Euroud clan. Nice to meet you!"

But a masculine orc who is about 6 feet and 5 inches tall and wearing a brown-and-green chain mail with a red skirt and a blue cap on his head stands in his way and says, "I am Osmisn of the Dosron clan."


Chapter 2

"Spistop gosn imri kridlip ospi, groz spi dloko."
―Oko Osisni, ancient orc warrior

Our heroes are exploring the path of Ziacl forest.

217 words

Alamantus avatar Nov 11 '18 20:11 Alamantus

Alright, I've got introductory chapters implemented! The introductory chapter establishes the antagonist and what they have done and introduces the protagonist and how they gather their party. The party is generated to either already know the protagonist or not, and that relationship determines how the protagonist collects them to begin their journey.

Here's the output of a nice split of friends and strangers:

Stiaswitwaecl Oumiejaupao, the evil, sent her army down upon the people of Yeatoiy in a fury, crushing the capital and taking over without mercy. Loadiil Meukomuu, a fledgling quarterstaff-learner, was in his cosy bungalow when they heard about the treachery of the evil, Stiaswitwaecl Oumiejaupao, and he felt a drive to do something about it.

Loadiil was a male elf who was about 5 feet and 1 inch tall and wore a maroon-and-blue tunic with a brown greaves and was a learner of the quarterstaff. Knowing that the evil and her army could never be defeated alone, Loadiil decided that he will need at least 3 other brave souls to assist him. Fortunately, he knew he could count on at least 2 friends to come help him on his journey.

Loadiil stomped to Ueluihiul, the elf quarterstaff-user's, cabin to request their assistance. Though incredulous at the mere suggestion, the masculine elf who was about 5 feet and 2 inches tall and wore a yellow leather armor with a yellow greaves and a green-and-blue cap on his head agreed to join Loadiil.

"I hope you don't get us all killed," Ueluihiul grumbled.

"Yeah me too, but if we don't do something, we'll be in deep trouble!" Loadiil spat in reply.

Finally, Loadiil stomped to Hoimeudiu, the elf sword-learner's, cave to request their assistance. Though incredulous at the mere suggestion, the male elf who was about 5 feet tall and wore a blue tunic with a green shorts and a blue-and-maroon bonnet on his head agreed to join Loadiil.

"I hope you don't get us all killed," Hoimeudiu grumbled.

"Yeah me too, but if we don't do something, we'll be in deep trouble!" Loadiil spat in reply.

While 2 friends is great, Loadiil knew that he still needed 1 more person to help. So Loadiil stomped to his local plaza with his friends to find some more assistance.

Loadiil moved to the center of the plaza and announced, "I am Loadiil of the Meukomuu clan. And don't you forget it! I can't stand the thought of living under the evil's reign, and we want to do something to stop her. Who here will help us?"

A nonbinary dwarf who was about 4 feet and 4 inches tall and wore a brown tunic with a maroon-and-maroon pants stood and said, "I am Bliosnash of the Eablau clan. It's a pleasure to meet you! I am a learner of the dagger."

Ever eager to help, they agreed to join Loadiil.

"This is a good thing we are setting out to do," Bliosnash chirped.

"Maybe so, but it won't be a comfortable journey. Get ready for a hard ride," Loadiil spat in reply.

Having gathered enough friends to begin his journey, Loadiil sets out with his newly-assembled party to brave the dangers on the way to the lair of the evil...

Generated novels like this will always have some amount of repetition, but I'm trying to reduce it by having different personalities respond to other personalities in different ways. Hopefully this, along with the different scenarios to choose from that later chapters will introduce, will help a bit!

Alamantus avatar Nov 12 '18 19:11 Alamantus

Alright, so I worked on generating fights! There are lots of little things to help add a little bit of variety, but it still gets a bit repetitive. Right now, I have it set up to simply generate a fight no matter what location the party is in, but eventually different locations will generate different possibilities (i.e. in towns and cities, there won't be random encounters). Characters have a chance to spot monsters before they attack and decide whether to tell the party or not, which allows the party to decide whether to risk the trouble.

Here's an example fight chapter with the middle snipped out because it was a little long:

Chapter 2

"Oko ojos ok kan alogo trox, otra oba!"
―Asosh Obasobr, great orc sage

Our heroes explored the city of Twioshaepresw. They were at the armory called "The Bumpy Baker", trying to make their way through.

As they were walking, Fecrio saw a spider! He pointed it out to the others, but they decided to avoid it to spare themselves any undue danger.

Our heroes remained in the city of Twioshaepresw. They were in the specialty shop called "The Most Unbelievable Rooster", trying to make their way through.

As they were walking, 2 wolfs and an imp and an ogre jumped out and attacked the party!

The wolf stepped up to attack Fecrio with a growl... But it missed! The wolf recklessly moved to attack Fecrio with a growl... But it missed! The ogre stepped up to attack Iogeer with a throw... The ogre threw Iogeer, doing a fair amount of damage; Iogeer swore loudly. Iogeer recklessly moved to attack the wolf with their quarterstaff... Iogeer hit the wolf and the wolf let out a cry of pain. The imp stepped up to attack Oameomies with a poke... But it missed! Fecrio took a defensive stance to try to fend off the enemy's advance. Oameomies lost her nerve and ran a little distance away.

The wolf ran up to attack Oameomies with a growl... But it couldn't hit Oameomies! The wolf looked around and decided to attack Oameomies with a growl... But it couldn't hit Oameomies! The ogre stepped up to attack Fecrio with a throw... But it couldn't hit Fecrio! Iogeer recklessly moved to attack the wolf with their quarterstaff... But they missed! The imp ran up to attack Fecrio with a poke... But Fecrio dodged quickly and avoided its poke! Fecrio lost his nerve and ran a little distance away. Oameomies took a defensive stance to try to fend off the enemy's advance.

The wolf ran up to attack Fecrio with a growl... But Fecrio dodged quickly and avoided its growl! The wolf recklessly moved to attack Oameomies with a growl... But Oameomies dodged quickly and avoided its growl! The ogre recklessly moved to attack Iogeer with a throw... But it missed! Iogeer lost their nerve and ran a little distance away. The imp looked around and decided to attack Iogeer with a poke... But Iogeer dodged quickly and avoided its poke! Fecrio ran up to attack the wolf with his warhammer... Fecrio slammed the wolf and the wolf let out a cry of pain. Oameomies lost her nerve and ran a little distance away.

The wolf looked around and decided to attack Fecrio with a growl... The wolf bit Fecrio, but it didn't hurt very much; Fecrio barked a laugh and flashed a rude gesture. The wolf recklessly moved to attack Iogeer with a growl... But Iogeer dodged quickly and avoided its growl! The ogre looked around and decided to attack Oameomies with a throw... But Oameomies dodged quickly and avoided its throw! Iogeer looked around and decided to attack the ogre with their quarterstaff... Iogeer hit the ogre and the ogre shook its head, hurt but still ok. Iogeer hit the ogre a second time and the ogre shook its head, hurt but still ok. The imp ran up to attack Fecrio with a poke... But it missed! Fecrio took a defensive stance to try to fend off the enemy's advance. Oameomies lost her nerve and ran a little distance away.

The wolf ran up to attack Fecrio with a growl... But Fecrio dodged quickly and avoided its growl! Iogeer stepped up to attack the imp with their quarterstaff... Iogeer hit the imp and the imp shook its head, hurt but still ok. The wolf recklessly moved to attack Oameomies with a growl... But it couldn't hit Oameomies! The ogre recklessly moved to attack Fecrio with a throw... But Fecrio dodged quickly and avoided its throw! Fecrio ran up to attack the wolf with his warhammer... Fecrio slammed the wolf and the wolf howled in pain. The imp looked around and decided to attack Iogeer with a poke... But it missed! Oameomies lost her nerve and ran a little distance away.

The wolf ran up to attack Iogeer with a growl... The wolf bit Iogeer, doing a fair amount of damage; Iogeer swore loudly. Iogeer took a defensive stance to try to fend off the enemy's advance. The wolf stepped up to attack Oameomies with a growl... But it couldn't hit Oameomies! The ogre ran up to attack Oameomies with a throw... But it couldn't hit Oameomies! Fecrio lost his nerve and ran a little distance away. The imp stepped up to attack Iogeer with a poke... But it couldn't hit Iogeer! Oameomies lost her nerve and ran a little distance away.

The wolf recklessly moved to attack Fecrio with a growl... But it couldn't hit Fecrio! The ogre recklessly moved to attack Fecrio with a throw... But Fecrio dodged quickly and avoided its throw! The wolf ran up to attack Oameomies with a growl... But it couldn't hit Oameomies! Iogeer took a defensive stance to try to fend off the enemy's advance. The imp ran up to attack Fecrio with a poke... But Fecrio dodged quickly and avoided its poke! Fecrio took a defensive stance to try to fend off the enemy's advance. Oameomies lost her nerve and ran a little distance away.

The wolf stepped up to attack Oameomies with a growl... But it couldn't hit Oameomies! The wolf ran up to attack Iogeer with a growl... But it couldn't hit Iogeer! The ogre looked around and decided to attack Fecrio with a throw... But it couldn't hit Fecrio! Iogeer took a defensive stance to try to fend off the enemy's advance. Oameomies lost her nerve and ran a little distance away. The imp looked around and decided to attack Fecrio with a poke... But Fecrio dodged quickly and avoided its poke! Fecrio recklessly moved to attack the ogre with his warhammer... But he missed!

Iogeer stepped up to attack the wolf with their quarterstaff... But they missed! The wolf looked around and decided to attack Fecrio with a growl... The wolf bit Fecrio, but it didn't hurt very much; Fecrio barked a laugh and flashed a rude gesture. The wolf recklessly moved to attack Oameomies with a growl... But Oameomies dodged quickly and avoided its growl! The imp ran up to attack Fecrio with a poke... But it missed! Fecrio looked around and decided to attack the wolf with his warhammer... Fecrio slammed the wolf and the wolf howled in pain. It let out one last cry of pain and collapsed to the ground, dead! Fecrio slammed the wolf again and the wolf shook its head, hurt but still ok. It let out one last cry of pain and collapsed to the ground, dead! The ogre recklessly moved to attack Oameomies with a throw... But Oameomies dodged quickly and avoided its throw! Oameomies lost her nerve and ran a little distance away.

...........snipped...........

Fecrio lost his nerve and ran a little distance away. The ogre stepped up to attack Oameomies with a throw... But it couldn't hit Oameomies! Oameomies lost her nerve and ran a little distance away.

Fecrio took a defensive stance to try to fend off the enemy's advance. The ogre looked around and decided to attack Fecrio with a throw... But it couldn't hit Fecrio! Oameomies recklessly moved to attack the ogre with her warhammer... But she missed!

Fecrio stepped up to attack the ogre with his warhammer... But he missed! The ogre ran up to attack Oameomies with a throw... But it missed! Oameomies lost her nerve and ran a little distance away.

The ogre stepped up to attack Fecrio with a throw... The ogre threw Fecrio, and dealt some serious damage! Fecrio swore angrily in pain. Fecrio recklessly moved to attack the ogre with his warhammer... Fecrio slammed the ogre and the ogre howled in pain. Fecrio slammed the ogre a second time and the ogre howled in pain. Oameomies stepped up to attack the ogre with her warhammer... Oameomies slammed the ogre and the ogre howled in pain. It let out one last cry of pain and collapsed to the ground, dead!

The party gathered itself together in victory, continuing their trek onward.

Also shown (at the beginning of the chapter) in this chapter is the naming convention for locations inside of towns and cities! It uses a subset of words from my game idea generator to create some fun names.

Alamantus avatar Nov 14 '18 00:11 Alamantus

This is so good. I especially like all the said-isms that it's throwing into the conversations.

janelleshane avatar Nov 14 '18 04:11 janelleshane

Wow, your fights are so well done! I need some ideas to improve mine, I may take some inspiration from yours :thinking: .

One thing that I was thinking about doing, is if the fight is finished in one shot some new text could replace the entire fight like: "In one fell swoop, Legolas decapitates the spider"

LuRsT avatar Nov 18 '18 09:11 LuRsT

@LuRsT Thanks! I put a lot of work into keeping them from getting too repetitive. The key is really just making sure you have enough possible variety.
That one-shot idea is pretty good! Right now, there are no attacks that can one-shot anything, but your idea reminded me that I should definitely add in a low chance of critical hit! I'm just not sure how much more effort I want to put into fights when I still have so much more to do haha.

Alamantus avatar Nov 19 '18 16:11 Alamantus

I've been working on implementing tavern interaction. So far, I have very basic things like banter with the bartender if the party has been to the tavern before, getting drinks, picking fights if a character gets drunk, and playing a single card game if the character doesn't want to drink. I'm planning on implementing one more card game and 2 dice games to add more variety, and then I need to improve the drinking variety.

Here's a pretty good sample chapter from a tavern scene that shows all the implemented features so far:

Chapter 7

"Xit srijeja xiaje iadrout iadrout srijeja, ainef Eaxaixean eagruhixe flesr idrisreaxi ainef ihe?"
―Vuseatia Nucaidre, ancient human warrior

Our heroes walked through the plains of Uswu, a large and haunted place with shimmering grass. They were on the hill called "Oshogi", trying to make their way through.

Not encountering anything interesting, the party continues onward. Our heroes explored the forest of Iswo, a small and lonely place with mysterious thickets. They were on the path called "Slavoufi", seeing what they could find.

As they were exploring, Esehaisl saw 2 imps! She kept it to herself, deciding it was better to ignore the threat. Luckily, the party was able to avoid the 2 imps and move onward without any issues.

Our heroes moved on from where they were in the forest of Iswo, a small and lonely place with mysterious thickets. They were in the clearing called "Srefesl", trying to make their way through.

Not encountering anything interesting, the party continues onward. The party returned to the plains called Ciuyeowaot, a small and ancient place with shady trees and grass. They were in the field called "Thorij", seeing what they could find.

Not encountering anything interesting, the party continues onward. Our heroes rested at the town called Iutiam, a small and stony place with houses. They were at the blacksmith called "The Fabulous Sock", recovering from all the walking they had done.

The party walked into the energetic blacksmith and found 9 people there plus the bartender. Uamialai saw Nivuhi Iaresousr, the bartender, when he walked in.

"Wow, This place still looks pretty good!" Uamialai smiled, looking around.

"Hey look, it's Uamialai! What are you doing here? Is your adventure not going as well as you hoped?" Nivuhi laughed.

"Ah, Nivuhi! I'm so glad to see you here! The journey has been difficult." Uamialai replied.

Uamialai noticed a feminine elf who was about 5 feet and 7 inches tall and wore tan leather armor with red pants and a green floppy hat on her head sitting at a table with a deck of cards. Uamialai walked over to request a game.

"I am Youlea of the Meuteimio clan. And don't you forget it! Sit down and we can get started," Youlea smirked, "We're playing Splits."

Youlea shuffled the deck and dealt the cards. Uamialai revealed a 5 of shields and Youlea flipped a 3 of shields, so Uamialai took both cards. Uamialai revealed a 2 of swords and Youlea flipped a 2 of shields, so Youlea took both cards. Uamialai revealed a 5 of swords and Youlea flipped a 1 of shields, so Uamialai took both cards. Uamialai revealed a 2 of stars and Youlea flipped a 4 of stars, so Youlea took both cards. Uamialai revealed a 3 of stars and Youlea flipped a 1 of swords, so Uamialai took both cards. Uamialai revealed a 3 of swords and Youlea flipped a 4 of swords, so Youlea took both cards. Uamialai revealed a 1 of stars and Youlea flipped a 5 of stars, so Youlea took both cards. Uamialai revealed a 4 of shields and Youlea flipped a 2 of swords, so Uamialai took both cards. Uamialai revealed a 5 of shields and Youlea flipped a 2 of shields, so Uamialai took both cards. Uamialai revealed a 3 of shields and Youlea flipped a 2 of stars, so Uamialai took both cards. Uamialai revealed a 5 of swords and Youlea flipped a 4 of stars, so Uamialai took both cards. Uamialai revealed a 1 of shields and Youlea flipped a 3 of swords, so Youlea took both cards. Uamialai revealed a 3 of stars and Youlea flipped a 4 of swords, so Youlea took both cards. Uamialai revealed a 1 of swords and Youlea flipped a 1 of stars, so Youlea took both cards. Uamialai revealed a 4 of shields and Youlea flipped a 5 of stars, so Youlea took both cards.

Uamialai grunted, exclaiming, "No!"

Uamialai revealed a 2 of swords and Youlea flipped a 1 of shields, so Uamialai took both cards. Uamialai revealed a 5 of shields and Youlea flipped a 3 of swords, so Uamialai took both cards. Uamialai revealed a 2 of shields and Youlea flipped a 3 of stars, so Youlea took both cards. Uamialai revealed a 3 of shields and Youlea flipped a 4 of swords, so Youlea took both cards. Uamialai revealed a 2 of stars and Youlea flipped a 1 of swords, so Uamialai took both cards. Play continued until Uamialai finally won.

Autwaifraikl felt thirsty and approached the bar, saying, "May I please have your best cider!"

The bartender nodded, poured a pint of the The Coldest Acceptance cider and slid it over to Autwaifraikl. Autwaifraikl downed it, nodding in satisfaction. The The Coldest Acceptance turned out to be too much for them, and they got drunk as they continued drinking. They looked over and saw a masculine dwarf who was about 4 feet and 4 inches tall and wore a yellow blouse with green shorts and maroon-and-green locks on his head. Autwaifraikl walked over to pick a fight.

"I am Autwaifraikl of the Kliofrasl clan. It's a pleasure to meet you! I am a master of the quarterstaff, and I think we should fight!" Autwaifraikl boasted.

"Well, I am Ogleakaglea of the Aciosnio clan. And don't you forget it! And I am a learner of the dagger, and I accept your challenge!" Autwaifraikl retorted.

Autwaifraikl recklessly moved to attack Ogleakaglea with their quarterstaff... Autwaifraikl hit Ogleakaglea, but it didn't hurt very much; Ogleakaglea barked a laugh and flashed a rude gesture. Ogleakaglea took a defensive stance to try to fend off the enemy's advance.

Ogleakaglea recklessly moved to attack Autwaifraikl with his dagger... Ogleakaglea stabbed Autwaifraikl, doing a fair amount of damage; Autwaifraikl cried out in pain! Autwaifraikl stepped up to attack Ogleakaglea with their quarterstaff... Autwaifraikl hit Ogleakaglea, but it didn't hurt very much; Ogleakaglea barked a laugh and flashed a rude gesture.

Ogleakaglea became afraid and ran away before the party could finish it off!

The party gathered itself together in victory, continuing their trek onward.

Esehaisl noticed a feminine elf who was about 5 feet and 7 inches tall and wore tan leather armor with red pants and a green floppy hat on her head sitting at a table with a set of dice. Esehaisl walked over to request a game.

"I am Youlea of the Meuteimio clan. And don't you forget it! Sit down and we can get started," Youlea smirked, "We're playing Overpower."

Esehaisl gathered up the dice into the cup. Esehaisl revealed a 2 of swords and Youlea flipped a 1 of stars, so Esehaisl took both cards. Esehaisl revealed a 1 of swords and Youlea flipped a 1 of shields, so Youlea took both cards.

Esehaisl cursed, yelling, "Damn it!"

Esehaisl revealed a 5 of swords and Youlea flipped a 4 of swords, so Esehaisl took both cards. Esehaisl revealed a 4 of stars and Youlea flipped a 2 of stars, so Esehaisl took both cards.

Esehaisl barked a laugh, exclaiming, "Ha! I'm the best!"

Esehaisl revealed a 4 of shields and Youlea flipped a 3 of stars, so Esehaisl took both cards. Esehaisl revealed a 5 of stars and Youlea flipped a 5 of shields, so Esehaisl took both cards. Esehaisl revealed a 2 of shields and Youlea flipped a 3 of swords, so Youlea took both cards. Esehaisl revealed a 3 of shields and Youlea flipped a 1 of swords, so Esehaisl took both cards. Esehaisl revealed a 2 of swords and Youlea flipped a 1 of shields, so Esehaisl took both cards.

Youlea cursed, yelling, "Damn it!"

Esehaisl revealed a 1 of stars and Youlea flipped a 2 of shields, so Youlea took both cards.

Esehaisl cursed, yelling, "Damn it!"

Esehaisl revealed a 5 of swords and Youlea flipped a 3 of swords, so Esehaisl took both cards. Esehaisl revealed a 4 of swords and Youlea flipped a 1 of stars, so Esehaisl took both cards. Esehaisl revealed a 4 of stars and Youlea flipped a 2 of shields, so Esehaisl took both cards. Esehaisl won the game!

Alamantus avatar Nov 19 '18 16:11 Alamantus

Alright, I just finished the skeleton for the final chapter. I'm working on final chapters because I'm worried I won't finish in time if I don't focus on a book-end—if I finish a final chapter generator, then I can say it's done at any time even if the middle is not as varied as I wanted.

There's no variation added yet, but I think it turned out pretty nice! There's a lot of fighting at the moment, and long fights at that, because I removed the possibility for any enemies to run away. Also, I think with a strong mini-boss directly preceding the final boss with no healing in-between, there's no way to reach a victorious ending, but I'll balance that out later. I'd also like to add some endings that use more cunning than just killing the antagonist, but I'm mainly just worried about time. We'll see what I can accomplish.

Until then, here's a sample final chapter in full:

After much long and arduous travel, Ouvu and their friends finally reached the wretched realm of Oomlaikh. The well-prepared party surveyed the army of Ufruglau Roesloebl the destroyer of innocence arrayed before them, and they were terrified by the fearsome sight. Though they felt great fear, our heroes knew that they needed to face the destroyer of innocence and put an end to the danger they posed to Miaxa. Taking special care not to be seen, the party makes their way into the shadows to avoid being seen by the destroyer of innocence's army. The party made their way to the castle, but were spotted by a feminine goblin who was about 3 feet and 6 inches tall and wore a tan-and-white blouse with an orange-and-orange skirt and a nonbinary goblin who was about 3 feet and 9 inches tall and wore a red blouse with a brown skirt and a male goblin who was about 3 feet and 1 inch tall and wore blue chain mail with a white-and-maroon loincloth. They ran to intercept the party and prevent them from continuing forward!

The male goblin in the blue chain mail took a defensive stance to try to fend off the enemy's advance. Ceubof recklessly moved to attack the male goblin in the blue chain mail with her sword... But she couldn't hit the male goblin in the blue chain mail! The nonbinary goblin in the red blouse lost their nerve and ran a little distance away. The feminine goblin in the tan-and-white blouse took a defensive stance to try to fend off the enemy's advance. Ziaciadrae looked around and decided to attack the nonbinary goblin in the red blouse with her quarterstaff... But the nonbinary goblin in the red blouse dodged quickly and avoided her hit! Ouvu lost their nerve and ran a little distance away.

The feminine goblin in the tan-and-white blouse lost her nerve and ran a little distance away. The male goblin in the blue chain mail stepped up to attack Ceubof with his quarterstaff... The male goblin in the blue chain mail hit Ceubof, but it didn't hurt very much; Ceubof brushed off the attack like a pro. Ceubof lost her nerve and ran a little distance away. The nonbinary goblin in the red blouse recklessly moved to attack Ceubof with their dagger... But they couldn't hit Ceubof! Ziaciadrae lost her nerve and ran a little distance away. Ouvu lost their nerve and ran a little distance away.

The feminine goblin in the tan-and-white blouse took a defensive stance to try to fend off the enemy's advance. The male goblin in the blue chain mail took a defensive stance to try to fend off the enemy's advance. Ceubof recklessly moved to attack the feminine goblin in the tan-and-white blouse with her sword... But the feminine goblin in the tan-and-white blouse dodged quickly and avoided her cut! The nonbinary goblin in the red blouse lost their nerve and ran a little distance away. Ziaciadrae looked around and decided to attack the feminine goblin in the tan-and-white blouse with her quarterstaff... But the feminine goblin in the tan-and-white blouse dodged quickly and avoided her hit! Ouvu took a defensive stance to try to fend off the enemy's advance.

The feminine goblin in the tan-and-white blouse took a defensive stance to try to fend off the enemy's advance. Ceubof looked around and decided to attack the nonbinary goblin in the red blouse with her sword... The nonbinary goblin in the red blouse tried to dodge, but Ceubof was too fast! Ceubof cut the nonbinary goblin in the red blouse, doing a fair amount of damage; the nonbinary goblin in the red blouse grunted loudly through gritted teeth. The male goblin in the blue chain mail lost his nerve and ran a little distance away. The nonbinary goblin in the red blouse took a defensive stance to try to fend off the enemy's advance. Ouvu ran up to attack the male goblin in the blue chain mail with their bow... But they couldn't hit the male goblin in the blue chain mail! Ziaciadrae took a defensive stance to try to fend off the enemy's advance.

The nonbinary goblin in the red blouse stepped up to attack Ziaciadrae with their dagger... But they couldn't hit Ziaciadrae! Ceubof recklessly moved to attack the feminine goblin in the tan-and-white blouse with her sword... But she couldn't hit the feminine goblin in the tan-and-white blouse! The feminine goblin in the tan-and-white blouse took a defensive stance to try to fend off the enemy's advance. The male goblin in the blue chain mail stepped up to attack Ceubof with his quarterstaff... The male goblin in the blue chain mail hit Ceubof, but it didn't hurt very much; Ceubof brushed off the attack like a pro. Ouvu lost their nerve and ran a little distance away. Ziaciadrae stepped up to attack the male goblin in the blue chain mail with her quarterstaff... Ziaciadrae hit the male goblin in the blue chain mail, doing a fair amount of damage; the male goblin in the blue chain mail tried to brush off the attack, but it was clear that he felt the pain. Ziaciadrae hit the male goblin in the blue chain mail a second time, and dealt some serious damage! The male goblin in the blue chain mail could not hide his intense pain.

The nonbinary goblin in the red blouse took a defensive stance to try to fend off the enemy's advance. Ceubof looked around and decided to attack the feminine goblin in the tan-and-white blouse with her sword... But she couldn't hit the feminine goblin in the tan-and-white blouse! The feminine goblin in the tan-and-white blouse stepped up to attack Ouvu with her sword... But she couldn't hit Ouvu! The male goblin in the blue chain mail became afraid and ran away to avoid dying! Ouvu lost their nerve and ran a little distance away. Ziaciadrae ran up to attack the nonbinary goblin in the red blouse with her quarterstaff... But the nonbinary goblin in the red blouse dodged quickly and avoided her hit!

The nonbinary goblin in the red blouse became afraid and ran away to avoid dying! Ceubof recklessly moved to attack the feminine goblin in the tan-and-white blouse with her sword... Ceubof cut the feminine goblin in the tan-and-white blouse, doing a fair amount of damage; the feminine goblin in the tan-and-white blouse tried to brush off the attack, but it was clear that she felt the pain. The feminine goblin in the tan-and-white blouse took a defensive stance to try to fend off the enemy's advance. Ouvu lost their nerve and ran a little distance away. Ziaciadrae lost her nerve and ran a little distance away.

The feminine goblin in the tan-and-white blouse became afraid and ran away before the party could finish her off!

Looking about them to make sure they could hide better, the party moved on.

When they finally reached the entrance of the castle, they were met with a guard: a masculine goblin who was about 3 feet and 8 inches tall and wore a blue shirt with purple greaves holding a wicked dagger standing in the way! The masculine goblin spotted them as they approached and quickly moved into a defensive possition to protect the door.

The masculine goblin lost his nerve and ran a little distance away. Ouvu lost their nerve and ran a little distance away. Ceubof lost her nerve and ran a little distance away. Ziaciadrae took a defensive stance to try to fend off the enemy's advance.

The masculine goblin took a defensive stance to try to fend off the enemy's advance. Ouvu lost their nerve and ran a little distance away. Ceubof took a defensive stance to try to fend off the enemy's advance. Ziaciadrae recklessly moved to attack the masculine goblin with her quarterstaff... But the masculine goblin dodged quickly and avoided her hit!

The masculine goblin took a defensive stance to try to fend off the enemy's advance. Ouvu ran up to attack the masculine goblin with their bow... But the masculine goblin dodged quickly and avoided their shoot! Ziaciadrae looked around and decided to attack the masculine goblin with her quarterstaff... But the masculine goblin dodged quickly and avoided her hit! Ceubof took a defensive stance to try to fend off the enemy's advance.

The masculine goblin stepped up to attack Ceubof with his wicked dagger... But he couldn't hit Ceubof! Ouvu lost their nerve and ran a little distance away. Ziaciadrae ran up to attack the masculine goblin with her quarterstaff... Ziaciadrae hit the masculine goblin, but it didn't hurt very much; the masculine goblin let out a bawdy laugh in response. Ziaciadrae hit the masculine goblin a second time, but it didn't hurt very much; the masculine goblin let out a bawdy laugh in response. Ceubof took a defensive stance to try to fend off the enemy's advance.

The masculine goblin ran up to attack Ziaciadrae with his wicked dagger... The masculine goblin stabbed Ziaciadrae, but it didn't hurt very much; Ziaciadrae let out a sigh of relief. The masculine goblin stabbed Ziaciadrae again, but it didn't hurt very much; Ziaciadrae let out a sigh of relief. Ouvu stepped up to attack the masculine goblin with their bow... But they missed! Ziaciadrae ran up to attack the masculine goblin with her quarterstaff... But she missed! Ceubof stepped up to attack the masculine goblin with her sword... Ceubof cut the masculine goblin, but it didn't hurt very much; the masculine goblin let out a bawdy laugh in response. Ceubof cut the masculine goblin again, but it didn't hurt very much; the masculine goblin let out a bawdy laugh in response.

Ouvu lost their nerve and ran a little distance away. Ceubof took a defensive stance to try to fend off the enemy's advance. The masculine goblin recklessly moved to attack Ouvu with his wicked dagger... But Ouvu dodged quickly and avoided his stab! Ziaciadrae looked around and decided to attack the masculine goblin with her quarterstaff... But she missed!

Ceubof ran up to attack the masculine goblin with her sword... Ceubof cut the masculine goblin, but it didn't hurt very much; the masculine goblin let out a bawdy laugh in response. Ouvu lost their nerve and ran a little distance away. The masculine goblin took a defensive stance to try to fend off the enemy's advance. Ziaciadrae looked around and decided to attack the masculine goblin with her quarterstaff... The masculine goblin tried to dodge, but Ziaciadrae was too fast! Ziaciadrae hit the masculine goblin, but it didn't hurt very much; the masculine goblin let out a bawdy laugh in response. Ziaciadrae hit the masculine goblin a second time, doing a fair amount of damage; the masculine goblin grunted loudly through gritted teeth.

Ouvu lost their nerve and ran a little distance away. Ceubof stepped up to attack the masculine goblin with her sword... But the masculine goblin dodged quickly and avoided her cut! The masculine goblin looked around and decided to attack Ziaciadrae with his wicked dagger... The masculine goblin stabbed Ziaciadrae, doing a fair amount of damage; Ziaciadrae cried out in pain! The masculine goblin stabbed Ziaciadrae a second time, doing a fair amount of damage; Ziaciadrae cried out in pain! Ziaciadrae took a defensive stance to try to fend off the enemy's advance.

Ouvu lost their nerve and ran a little distance away. Ceubof took a defensive stance to try to fend off the enemy's advance. The masculine goblin looked around and decided to attack Ceubof with his wicked dagger... Ceubof tried to dodge, but the masculine goblin was too fast! The masculine goblin stabbed Ceubof, but it didn't hurt very much; Ceubof brushed off the attack like a pro. The masculine goblin stabbed Ceubof a second time, but it didn't hurt very much; Ceubof brushed off the attack like a pro. Ziaciadrae recklessly moved to attack the masculine goblin with her quarterstaff... But she missed!

Ceubof stepped up to attack the masculine goblin with her sword... But she missed! Ouvu looked around and decided to attack the masculine goblin with their bow... But they missed! The masculine goblin looked around and decided to attack Ziaciadrae with his wicked dagger... The masculine goblin stabbed Ziaciadrae, doing a fair amount of damage; Ziaciadrae cried out in pain! Ziaciadrae lost her nerve and ran a little distance away.

Ceubof lost her nerve and ran a little distance away. Ouvu lost their nerve and ran a little distance away. The masculine goblin looked around and decided to attack Ouvu with his wicked dagger... But Ouvu dodged quickly and avoided his stab! Ziaciadrae ran up to attack the masculine goblin with her quarterstaff... Ziaciadrae hit the masculine goblin, doing a fair amount of damage; the masculine goblin grunted loudly through gritted teeth. Ziaciadrae hit the masculine goblin a second time, doing a fair amount of damage; the masculine goblin grunted loudly through gritted teeth.

Ouvu lost their nerve and ran a little distance away. Ziaciadrae ran up to attack the masculine goblin with her quarterstaff... Ziaciadrae hit the masculine goblin, doing a fair amount of damage; the masculine goblin grunted loudly through gritted teeth. Ziaciadrae hit the masculine goblin again, and dealt some serious damage! The masculine goblin yelled out in pain, angry at the enemy's luck. The masculine goblin succumbed to the pain and groaned as he slumped backward.

Ouvu then stood watch while the rest of the party got through the door.

The inside of the castle was large and terrifying. After wandering around for a while, our heroes finally came face to face with the destroyer of innocence theyself, Ufruglau Roesloebl! the nonbinary goblin who was about 3 feet and 4 inches tall and wore a black-and-purple shirt with maroon shorts and a green helmet on their head stood with their horrific dagger, pointing it at Ouvu.

"You must be Ouvu Asmihoup, the thorn in my side I have been hearing about! I am Ufruglau of the Roesloebl clan. Not that I care what you think. Prepare to die!" Ufruglau bellowed.

Ceubof took a defensive stance to try to fend off the enemy's advance. Ouvu ran up to attack Ufruglau with their bow... But they missed! Ufruglau stepped up to attack Ceubof with their horrific dagger... But Ceubof dodged quickly and avoided their stab! Ziaciadrae looked around and decided to attack Ufruglau with her quarterstaff... Ziaciadrae hit Ufruglau, but it didn't hurt very much; Ufruglau let out a bawdy laugh in response.

Ceubof took a defensive stance to try to fend off the enemy's advance. Ouvu lost their nerve and ran a little distance away. Ufruglau lost their nerve and ran a little distance away. Ziaciadrae ran up to attack Ufruglau with her quarterstaff... But she couldn't hit Ufruglau!

Ufruglau took a defensive stance to try to fend off the enemy's advance. Ziaciadrae ran up to attack Ufruglau with her quarterstaff... Ufruglau tried to dodge, but Ziaciadrae was too fast! Ziaciadrae hit Ufruglau, but it didn't hurt very much; Ufruglau let out a bawdy laugh in response. Ziaciadrae hit Ufruglau a second time, but it didn't hurt very much; Ufruglau let out a bawdy laugh in response. Ouvu lost their nerve and ran a little distance away. Ceubof recklessly moved to attack Ufruglau with her sword... But Ufruglau dodged quickly and avoided her cut!

Ufruglau lost their nerve and ran a little distance away. Ziaciadrae recklessly moved to attack Ufruglau with her quarterstaff... Ufruglau tried to dodge, but Ziaciadrae was too fast! Ziaciadrae hit Ufruglau, but it didn't hurt very much; Ufruglau let out a bawdy laugh in response. Ziaciadrae hit Ufruglau a second time, but it didn't hurt very much; Ufruglau let out a bawdy laugh in response. Ouvu ran up to attack Ufruglau with their bow... But they couldn't hit Ufruglau! Ceubof ran up to attack Ufruglau with her sword... Ufruglau tried to dodge, but Ceubof was too fast! Ceubof cut Ufruglau, but it didn't hurt very much; Ufruglau let out a bawdy laugh in response.

Ufruglau stepped up to attack Ceubof with their horrific dagger... Ufruglau stabbed Ceubof, and dealt some serious damage! Ceubof could not hide her intense pain. Ziaciadrae recklessly moved to attack Ufruglau with her quarterstaff... But she missed! Ouvu took a defensive stance to try to fend off the enemy's advance. Ceubof ran up to attack Ufruglau with her sword... Ceubof cut Ufruglau, but it didn't hurt very much; Ufruglau let out a bawdy laugh in response.

Ouvu took a defensive stance to try to fend off the enemy's advance. Ufruglau stepped up to attack Ceubof with their horrific dagger... Ufruglau stabbed Ceubof, and dealt some serious damage! Ceubof could not hide her intense pain. Ceubof succumbed to the pain and fell to her knees. Ziaciadrae took a defensive stance to try to fend off the enemy's advance.

Ouvu lost their nerve and ran a little distance away. Ufruglau took a defensive stance to try to fend off the enemy's advance. Ziaciadrae took a defensive stance to try to fend off the enemy's advance.

Ouvu lost their nerve and ran a little distance away. Ufruglau took a defensive stance to try to fend off the enemy's advance. Ziaciadrae stepped up to attack Ufruglau with her quarterstaff... But Ufruglau dodged quickly and avoided her hit!

Ouvu lost their nerve and ran a little distance away. Ufruglau ran up to attack Ouvu with their horrific dagger... But they couldn't hit Ouvu! Ziaciadrae ran up to attack Ufruglau with her quarterstaff... Ziaciadrae hit Ufruglau, but it didn't hurt very much; Ufruglau let out a bawdy laugh in response. Ziaciadrae hit Ufruglau a second time, but it didn't hurt very much; Ufruglau let out a bawdy laugh in response.

Ouvu lost their nerve and ran a little distance away. Ufruglau took a defensive stance to try to fend off the enemy's advance. Ziaciadrae stepped up to attack Ufruglau with her quarterstaff... But she couldn't hit Ufruglau!

Ufruglau stepped up to attack Ziaciadrae with their horrific dagger... Ufruglau stabbed Ziaciadrae, and dealt some serious damage! Ziaciadrae began crying from the pain. Ziaciadrae succumbed to the pain, crying out as she fell backwards. Ouvu took a defensive stance to try to fend off the enemy's advance.

Ufruglau lost their nerve and ran a little distance away. Ouvu stepped up to attack Ufruglau with their bow... But they couldn't hit Ufruglau!

Ufruglau stepped up to attack Ouvu with their horrific dagger... Ufruglau stabbed Ouvu, doing a fair amount of damage; Ouvu tried to brush off the attack, but it was clear that they felt the pain. Ouvu took a defensive stance to try to fend off the enemy's advance.

Ufruglau stepped up to attack Ouvu with their horrific dagger... But they couldn't hit Ouvu! Ouvu lost their nerve and ran a little distance away.

Ufruglau recklessly moved to attack Ouvu with their horrific dagger... Ouvu tried to dodge, but Ufruglau was too fast! Ufruglau stabbed Ouvu, but it didn't hurt very much; Ouvu brushed off the attack like a pro. Ufruglau stabbed Ouvu again, and dealt some serious damage! Ouvu could not hide their intense pain. Ouvu ran up to attack Ufruglau with their bow... Ouvu shot Ufruglau, but it didn't hurt very much; Ufruglau let out a bawdy laugh in response. Ouvu shot Ufruglau again, but it didn't hurt very much; Ufruglau let out a bawdy laugh in response.

Ufruglau ran up to attack Ouvu with their horrific dagger... Ufruglau stabbed Ouvu, and dealt some serious damage! Ouvu could not hide their intense pain. Ouvu succumbed to the pain and fell to their knees.

The whole party had fallen, and with a haughty sneer, the destroyer of innocence cast their horrific dagger aside and turned back to where they had been sitting when our heroes had arrived. They were defeated.

But Ouvu stirred, struggling to their feet, leaning against their bow. Feebly reaching out, they stretched out their hand toward the destroyer of innocence Ufruglau Roesloebl. The sneering smile dropped as Ufruglau watched a growing glimmer of light gather in Ouvu's hand, their eyes filling with horror.

"No! This is impossible! The Ancient magics are just a myth!" they cried out as the light shot out from Ouvu's hand, directly into Ufruglau's chest.

"Nooooooo!!!" Ufruglau Roesloebl, the destroyer of innocence, screamed as they were burned away to dust.

And with that, Ouvu Asmihoup, the user of the bow, our great hero, let out their last breath and collapsed to the floor. Their final act of sacrifice had saved the land of Miaxa, and the dark realm of Oomlaikh was freed of its curse.

THE END

Alamantus avatar Nov 21 '18 22:11 Alamantus

Alright, I'm ending my efforts for now. I'd like to keep working on this, but I won't be able to make significant improvements before the end of the month, so this is what I'm submitting for NaNoGenMo 2018! I'll just keep working on it after it's done so I can have a more fleshed out adventure for myself. :smiley:

Until then, the final generated output for this project is located here:
https://raw.githubusercontent.com/Alamantus/nanogenmo2018/NaNoGenMo2018-end/novel.txt

I also added a README with plans for the future and instructions for if you want to generate your own fantasy novel using my script!

Alamantus avatar Nov 27 '18 18:11 Alamantus

Sorry if this is the wrong way to do this, but...

Tagging the admins so they can label this as complete:
@dariusk @hugovk @MichaelPaulukonis @mewo2

Thanks!

Alamantus avatar Nov 27 '18 18:11 Alamantus

Labelled and well done!

hugovk avatar Nov 27 '18 19:11 hugovk

Reading your code has been a big inspiration to me, @Alamantus. Just wanted to mention that.

mathias avatar Nov 28 '18 00:11 mathias

@mathias Thank you! That's great to hear! :smiley:

Alamantus avatar Nov 28 '18 22:11 Alamantus

This is very RA Salvatore!

jimkang avatar Nov 30 '18 21:11 jimkang

This is very readable!!

LuRsT avatar Nov 30 '18 22:11 LuRsT