Randomly generated quests

Started by
3 comments, last by Polama 8 years, 5 months ago

Let's assume there are only 2 types of quests allowed (to avoid mudding the topic):

1) Bring an item.

2) Kill a monster.

The random generator for these would work more or less like that:

1) "Bring me [ITEM] from [LOCATION] and you will be rewarded."

2) "Go to [LOCATION] and slay [MONSTER]. You will be rewarded afterwards."

With these two you can make unlimited number of quests (kill a rat, kill a dragon, kill an ogre), you just replace ITEM/LOCATION/MONSTER with a word from a list.

But... as you see it's quite unthematic smile.png There is no flavour, no context, just dry mechanics.

Compare this with handmade quest (note the mechanic of quest is identical).

1) {You see a young woman, her eyes look as if she was crying a lot lately} "My husband, a knight of [KING'S_NAME] court went on a quest to kill a dragon. But it turned out the dragon was a female and he has fallen in love with the foul beast! Please, bring me a love potion from [LOCATION], it's the only thing that can save our love!"

2) {You see a young woman, she looks mad, very mad} "My husband, a knight of [KING'S_NAME] court went on a quest to kill a dragon. But the beast, which seems to be a female, used some black sorcery to make my darling fall in love with her! Can you imagine?! Outrageous. Pretty please, go to [LOCATION] and slay the foul beast and make sure it suffers. A lot! That's the only thing that can save my poor misguided husband."

No matter how poor my writing would be, it still would outbeat the random quest generator above smile.pngIdeas how to make the quest generator better?

Stellar Monarch (4X, turn based, released): GDN forum topic - Twitter - Facebook - YouTube

Advertisement

Still no ideas? OK, I will start then :)

I have finally checked the scripting language of Gearhead (the only roguelike famous of "done random quests right") and honestly, I was a bit disappointed. Yes, it works, for that game. Yes, these sre sufficiently random and everything. But... I will tell you how it works, you have a file called "bartender" and it has like 10 handwritten texts, the game chooses one at random (actually it's more complex like that, it takes into account your repoutation, skills, etc). For this particular roguelike it's fine, you have just one sentence per NPC in these anyway, so writinh them a lot of redundant content is not a big problem. But for a full blown RPG it won't work... The workload would be too high I think (you use like 10% of content in one gaming session using that system).

Anyway, it's a good start and I recommend checking it (google "Gearhead roguelike").

Now, how I would do it. I would try some independent/semi independent modules. The simpliest is to separate the text of quest giver and the text of reward. Like "Go and sly the dragon" and "Here, take this old helmet I found as a reward."(this text could be used in various other quests). These two could be separated. Probably it would require some sort of templates and tags, so you don't get a noblewoman giving you a basket of carrots :)

Similarly, I think the text giver could be split too, like this:

"My husband, a knight of [KING'S_NAME] court went on a quest to kill a dragon. But it turned out the dragon was a female and he has fallen in love with the foul beast!" ...[LOVEPOTIONMODULE]... "It's the only thing that can save our love!"

Now the LOVEPOTIONMODULE could have these variants (game chooses one randomly):

* "Please, bring me a love potion, it's is said a famous alchemist lives in [LOCATION_CITY] and could have these." (UNLOCK_ALCHEMIST_IN_NEARESTCITY_SELLLOVEPOTIONS)

* "Please, go to [LOCATION_SWAMP] and bring me a rare herb so I can brew a love potion."

* "Please, go to hermit who lives in [LOCATION_SWAMP/CAVE/FOREST] and ask for a love potion." (SPAWN_HERMIT in LOCATION)

Now, if you want to make a similar quest for a noblewoman you simply do "I have fallen in love with the king, but he has not fallen in love with me and that's the problem" ...[LOVEPOTIONMODULE]... "If you do I would be very grateful, once I become the queen I mean." or do a king's quest "I have a problem with my daughter, I have found her a nice prince, he even skilled the dragon and everything but my silly girl refuses to marry him." ...[LOVEPOTIONMODULE]... "That's the only thing that can save our kingdom! I need a grandsom!"

Stellar Monarch (4X, turn based, released): GDN forum topic - Twitter - Facebook - YouTube

I think the thing to do is to try and tell the quest situation from the third person perspective, allowing the reader's imagination to fill in details about the passionate plea that the NPC has made.

[NPC-Name] [is a known | claims to be a] [NPC-Profession] in the town of [NPC-Home]. Coming to you looking [NPC-Emotional State], He [pleads | begs | requests | demands] that you [quest 1 | quest 2].

[NPC-Name] indicates that his intentions are [romantic | vengeance | scientific | economic | political] [and you have no reason to doubt him | but you get the sense that his real intentions are [romantic | vengeance | scientific | economic | political].

Why have a quest generator when you can hand-write 50 good quests which will be better than 50000 bad ones?

You're not going to need robots to do your work, silly.

If you're a good writer, an enthusiastic writer, then your audience will be likely to stick with you through all 50 good ones. Like Runescape.

Why have a quest generator when you can hand-write 50 good quests which will be better than 50000 bad ones?

You're not going to need robots to do your work, silly.

If you're a good writer, an enthusiastic writer, then your audience will be likely to stick with you through all 50 good ones. Like Runescape.

Personally, I think the best use of procedural quests is to make the game more reactive to the player. One of the joys of tabletop roleplaying is having a DM who reacts to your decisions: befriend the dragon? Steal the king's crown? Fail a quest and let Assassin King escape? Then the story will adapt to these circumstances. I agree that human generated content is superior, so it makes sense to play to procedural generation's strengths, which is mostly about being able to generate plot on the fly.

To the original question, one approach would be to give each object multiple, tagged descriptions.

castle
(is_home, "the stone spires of {name}, which I climbed daily in my youth")
(liked, "the noble castle {name}")
(disliked, evil, "The dark blight on our land, {name}")
(disliked, good, "That pious and meddlesome pile of stones, {name}")

And you can of course recurse:

castle
(is_home, "{1} of {name}, {2} I {3} in my youth")
(is_thief, "the stone spires","which", "climbed daily")
(is_wizard, "the grand halls", "where", "spent endless hours reading")
(is_thief, "the labyrthine ways" "with secret passages", "alone knew of")

and if you're careful, this even allows multiple phrasings of the same content for even further variety)

castle
(is_home, ("{1} of {name}, {2} I {3} in my youth" OR "{name}! I'll never forget {1} {2} I once {3}"
(is_thief, ("the stone spires" OR "the great towers" OR "the massive walls") ...

or even (is_thief, "the {large} {external-castle-feature})

This topic is closed to new replies.

Advertisement