Evoplasm Devlog

This is the devlog for Evoplasm – the roguelike creature builder. If you want to try the game join our Discord. You can also follow us on Twitter.

NanoGenMo 2015 – Simulationist Fantasy Novel

 Read a random computer generated fantasy novel!

 NanoGenMo Code

 WordTools Code

Overview

In 2015 I took part in Darius Kazemi’s NanoGenMo. The goal of NanoGenMo is to generate a novel from a computer program.

My creation was a fantasy novel that was created by simulating a party of adventurers traveling through a fantasy world in the style of Lord of The Rings (i.e. go here and destroy this thing).

I generated a total of 77 novels. Click here to read a random one.

Technique

My novel was created by generating three heroes and a series of generic fantasy settings. The heroes travel through the settings and statistics such as food level and energy level are tracked. Each setting first results in the generation of setting paragraph. This is an expository paragraph about the setting the characters have arrived in. This uses ConceptNet to try to generate meaningful statements about the setting.

Eun Wadsworth, Cayla, and Eleonora the deceitful traveled to a church. There was an aisle between pew inside the ugly church. There was an altar inside the ugly church. The altar was a flat. Eleonora the deceitful stated, “I’m starving.” The altar was used for a tie knot. Cayla thought about how a church was kind of like a religious service. The church was a religious gather. The altar was used for a sacrifice. Eleonora thought about how a church was related to a paint. The church was a perform.

 

In the above paragraph ConceptNet has been used to recognize that “aisle between pew” and an “altar” are things that exists inside a church.  ConceptNet is also used to determine similar facts about the props located inside a setting as well.

While at a setting various other events can occur. If food levels are low, characters may decide to go hunting, fishing, or gathering. These paragraphs pose a series of survival challenges, such as searching for an animal, tracking it, and firing an arrow at it.

Larissa the unpleasant stated, “I’m starving.” Maricruz the nasty decided to go hunting. She searched the evil lair for signs of squirrels. Squirrel tracks were spotted by her in the mud. Maricruz the nasty followed the tracks, staying upwind so as not to alert the squirrel. A rustling sound was heard in the distance. She aimed her bow at the squirrel and fired. She hit her target. Maricruz returned to Tracy with her food. Tracy the pessimistic announced, “Great job Maricruz.” Because of this great accomplishment Maricruz became known as ‘The Loyal’.

 

If energy is low, camping is handled in a similar fashion:

Tracy Bermudez, Larissa, and Maricruz the vain made camp. Larissa the plucky searched for dry wood for a fire. She searched for an hour, but all the wood was wet, and she gave up. Meanwhile, Maricruz the vain went scouting. She heard a family of orcs. One of the orcs had a bloodstained shirt. She patiently watched the orcs. The orcs took the picture from the barn. But the orcs soon left the barn. Moonlit darkness fell over the camp. Tracy Bermudez told a story. As the leaves rustled, they all fell asleep. Larissa the plucky dreamt of a capitol, traders, and useful folks.

 

While camping characters will be challenged to scout for enemies. The above example succeeded. If it had failed, an enemy patrol would be added to the enemy list. These enemies may ambush the heroes at a later time:

Suddenly two gnomes ambushed the group. Siobhan The Amiable grunted wearily. Freda circled around the gnome with the disgusting pimple, looking for an opening. Jacquelyn The Adaptable struck the the gnome with the disgusting pimple with her dagger. Jacquelyn Terrill’s attack caused the gnome with the disgusting pimple to have a broken rib. The Gnome With The Angry Grimace struck the Freda the cowardly with her mace. The Gnome With The Angry Grimace’s attack caused Freda to have a herniated disc. The Gnome With The Angry Grimace leapt away from Siobhan Whittle. A sudden chill fell over the woods. The Gnome With The Disgusting Pimple grunted wearily. Jacquelyn The Adaptable struck the the gnome with the disgusting pimple with her dagger. Jacquelyn The Adaptable struck the gnome with the disgusting pimple killing her. A rustling sound was heard in the distance. The Gnome With The Angry Grimace struck the Siobhan with her mace. The Gnome With The Angry Grimace’s attack caused Siobhan Whittle to have a bruised face. Jacquelyn Terrill struck the the gnome with the angry grimace with her dagger. Jacquelyn’s attack caused the gnome with the angry grimace to have a shattered elbow. The Gnome With The Angry Grimace parried Freda’s warhammer with her mace. Jacquelyn struck the the gnome with the angry grimace with her dagger. Jacquelyn Terrill struck the gnome with the angry grimace killing her. All of the gnomes were defeated.

 

The final task was to add a simple intro and conclusion with a wizard, a quest, a MacGuffin, and a goal. To hit the 50k word count goal about 325 settings/chapters needed to be generated for the novel. On my computer generating a novel took about 10 minutes.

Next Steps

I doubt I’ll continue working on this novel, but here are some plans that I had for future goals:

  • Character deaths and replacement
  • Intro paragraphs to set up combat
  • Many more kinds of paragraphs
  • Some sort of internal sentence representation that could be used for future sentence generation

Press

Clarkesworld, Another Word: Let’s Write a Story Together, MacBook