Click here to go straight to the WoS merchandise shop!

WoS World Developer Pages
Non-linear Storytelling

Well of Souls:
Home Page

Bulletin Board
WorldDev Forum

Developer Pages:
Story and Place
Heroes and Monsters
Items, Weapons & Spells
Music and SFX
Non-linear Storytelling
The 'Quest' Language
Publishing Your World

Custom Skins
Other Worlds
Beta Testers Page

Synthetic Reality

In the game, Well of Souls, players are allowed to freely roam the world, dropping into 'scenes' at specific locations where they chat with each other, and with scripted computer players.
It is these scripted players which inform the players of available 'quests' The script language allows you to mark individual players with invisible 'tokens' to help remember who has heard what already. That is to say, when a player enters a scene, the game engine rifles through the player's pockets to see what tokens he or she is carrying (proof of prior accomplishments) and that determines which dialog takes place. A given scene script may include several different dialogs. (for example, the FIRST time you meet the king he says one thing, the NEXT time he says something else, etc.)

Each minor quest requires at least 3 different tokens:

Token 1 The 'I have been told about the quest' token (to prevent being told again, and to enable various hints to be delivered.) If I return to the scene, already in possession of this token, the king should just remind me about the quest. ("How're you doing with that dragon, anyway? We're hoping to hold the festival soon and it sure would be nice if we had some goats left.")

If I am NOT in possession of this token when I enter the scene, then the king should tell me the whole boring story, ask me to help out, give me some starter kit (a weapon maybe) a couple clues, and token 1.

Token 2 The "I have achieved the primary goal": e.g. killed the dragon. When I meet the king carrying this token, he should give me a reward (and token 3)
Token 3 The "I have been rewarded" (the quest is complete). If people I meet have nothing better to say, they could praise me.

Tokens are just numbers. Not seen by the player, but they influence which path is taken through a scene's dialogue. A single 'world' consists of many minor and major 'quests' (including one final quest). You must portion the available tokens (numbered 1 - 4095) between these quests. When you quit a game (save it) your current tokens are recorded with your character and restored later when you resume playing.


All plot development is via dialog with scripted characters in scenes, not via narration. This plot form should stress actual dialog over descriptions of events. Dialog should be delivered in economical (bite-sized) chunks since the dialog is displayed in a small speech bubble, and introduces a delay in play.

There is a single narrative paragraph, per world, which scrolls by the user during the opening credits for the world. It can be used to set the overall tone and backstory for that world, as well as to hint at what the final quest will be about.

A limited amount of 'acting' is available to the scripted characters (they can slide around the screen a little, enter and exit, and appear to talk to each other.) They can also ask the occasional YES/NO question of the player, as in "I've told you my problems, are you going to help me or not?"


Each minor quest requires 4 scene scripts. Each scene script is influenced by the tokens the player is already carrying:

scene1 The player is told of the quest, accepts it, and is given token 1. Returning to this scene later results in a simple reminder that the quest is not done.
scene2 (actually distributed over multiple scenes) characters notice you have token 1, but not token 2, and they give you a hint about the quest. In some cases, they may notice you have token 2 but not token 3 and might remind you where to go to get your reward.
scene3 The Big Fight. You have found your way to the dragon's cave and have a big battle with the dragon (who taunts you a bit before and after the fight). If you win, you get token 2. Usually you had a long walk to get to this point and fought many random battles along the way, raising your experience level.
scene4 (usually back in the original scene1 location) You return victorious, they notice you have token 2 and they reward you. Also they give you token 3 (so as not to continue rewarding you each time you return to the scene.)

In a given world there are many quests, each with 3 tokens and 4 scenes. The REAL scene and token numbers are not allowed to overlap, so 1,2,3,4 is just an example. For simplicity you might want to number your quests 1-25 and then use "23" to mean "token 3 of quest 2"

And, of course, this is the minimum form. You can add additional scenes and tokens in a given quest to create whatever level of complexity which appeals to you. However, this will result in a high degree of serialization. Overall you probably want to create multiple, independent, but overlapping quests to enable the player to perform the quests in any order (and to be simultaneously working on several quests at the same time).


For the most part, the player can enter into scenes in any order, so you cannot be sure that some other quest has been completed before the player begins a new one (unless you specifically do a token check). You are advised to embrace this non-linearity and to impose as few such modal plot directives as possible. (also, keeping your quests independent will mean less work if you modify a quest -- you won't have to also update 15 other quests).

However, there are times when you WANT some forced serialization (you might have a quest which only makes sense after the town of Dorber has been destroyed.. and that happens in the middle of a quest). The easiest way to handle this is to have the same king (as it were) deliver both quests. IN a single scene's script file you control the order in which the tokens are checked.

The script language structure allows serialization such that a particular king in a particular castle will wait until you have completed his first quest before he challenges you to the next one. Hence you can take advantage of that fact to imply historical progress. (at least local to that kingdom). So you might have only 5 kings with 5 quests each where it would only be possible to be working on 5 quests at a time and when working on a particular king's 3rd request, the dialog can refer to events of the first 2 quests in the past tense (whereas they should not refer to other king's quests at all without explicitly testing for tokens from those quests.)

The goal is to keep each quest separate enough that it isn't a nightmare to keep all the numbers in order (for example, avoid requiring that a change to one quest affects the scripting for lots of other quests)

And of course, quests don't have to be managed by kings. That's just an example. Any scripted character can deliver quest dialog.

EXAMPLE QUEST: The hunt for the golden duck

Here is an example Quest, showing the sort of script language control required in each scene so as to deliver the proper dialog as the player works his or her way through the quest. The BLUE LETTERS indicate script language commands which are described, rather than shown in their actual ugly syntax.

1.) We hear about the problem, and take on the quest, gaining token 1


IF WE DON'T HAVE TOKEN 1 (tell player the problem)

King: Greetings, Welcome to castle Andover. You have caught us at a time of great sorrow. Our lovely golden duck has been stolen by bandits

Queen: Ugly Bandits

King: Yes dear, ugly bandits. They snuck in through a secret cave behind the dungeons and stole the duck from the library where it was on display for our 200th anniversary

King: Will you find our duck?

IF [YES] --> give token 1 to player and continue

King: Thank you, take this magic flute, perhaps it will aid you in your quest.

Queen: Oh yes, and pretty music it makes, too!


ELSE IF WE DON'T HAVE TOKEN 2 (remind player of the problem)

King: mmmmph!

Queen: Please excuse him, he is asleep, and dreams only of the return of his precious golden duck. Have you learned to play the flute yet?

IF [YES] (continue)

Queen: Oh play me a tune!

[awful music plays]

Queen: Oh, that is terrible! Please stop!


ELSE IF WE DON'T HAVE TOKEN 3 (thank player for doing it, and reward player)

King: Wow! This is great! My duck! You are the BEST! You RULE man! You OWN! Take this 500 bucks with my thanks! And here is a flying girdle! And season passes to the 49ers games!

Queen: Oh yes, my. You da bomb!

Give player token 3


ELSE (we have all 3 tokens) (acknowledge player is all done with this quest)

King: Oh Hi, thanks again for the duck thing. Have a nice day!

Queen: Yes, um. scat.



2.) We wander around, and random villagers notice we have token 1, but not token 2 and give us hints.


IF WE HAVE TOKEN 1, BUT NOT TOKEN 2 (give us a hint to solve the quest)

Old Man: That's a lovely flute you have there, would you like some flute lessons?

[flute lessons might be a separate quest which result in your gaining another token which is useful in yet another quest]

Child: Everyone knows the bandits control the caves to the east

Dog: Woof! grrrrr. LeChuck!


ELSE IF WE HAVE TOKEN 2 BUT NOT TOKEN 3 (remind us to get our reward)

Old Man: Hey, you should get back to castle Andover. The King is going bonkers over that duck!


ELSE IF WE HAVE TOKEN 3 (praise us for completing the quest)

Old Man: Hey, aren't you the guy who found the golden duck? You should have sold it and used the money to feed the orphans. The king sucks!



3.) We have found our way to the cave of the bandits and met the Bandit King


IF WE DON'T HAVE TOKEN 1 (Bandit refuses to fight us if we haven't heard about quest yet)

Bandit: Get out of here! We're having a meeting


IF WE HAVE TOKEN 1 BUT NOT TOKEN 2 (our shot for glory)

Bandit: So, you've come for the duck, eh? Well let's see ow tough you you are!


IF WE WIN --> Give Token 2 to player

Bandit: Ah, you beat me fair and square. I promise I will be good.


IF WE HAVE TOKEN 2 (we already fought and beat this bandit)

Bandit: I'm still being good, honest

[this could be the start of a quest initiated by the bandit]


4.) We have wandered back to castle andover and pick up in scene 1 where it notices we have token 2 and we get token 3 as a result. (see scene 1 above)

I hope that made a LITTLE sense, but I suspect it didn't... Feel free to rummage around in the Evergreen script files and see some real scene examples. You can cause a scene to run by typing "/scene X" (where X is the scene number). This will mark your character as a cheater, so make a special character just for this purpose.


Whether you plan to generate art assets or not, you might consider doing the following:

  • Draw a simple map of your world, with important geographic features
  • Name the major 'scene' locations in your world (towns, castles, caves, forests, mountain passes, etc.)
  • Think about the major cast of characters in your world (kings, queens, wizards, princes, tailors, lovers). These are the characters who will be delivering most of the dialog, and it would be nice if over the course of the world we learned a little bit about the characters, beyond simply the problems they would have us solve.
  • Think about names. In an environment as sparse as this game, the very names of characters, places, and monsters is an important part of the overall player experience.
  • Decide on the main quest for the world, and the backstory of events which led to the main problem. Use this both in your credits narration, as well as referring to it in dialogs used in the other quests.
  • Make 4 or 5 major quests which must be completed before setting out on the final quest. (Collect the six keys to time, the 7 miracle coins, kill the 4 dark princes, etc.)
  • Make as many minor quests as you have energy for. These will generally be just for fun, or will collect armor, weapons, money, or good-will which is important in dealing with the major quests. Minor quests should generally require no serialization and be achievable in any order.
  • Reuse locations and characters between the quests. Where serialization is used, let the character show some growth between quests.

Presumably it is more interesting for the player if there are 5 or so quests which can be worked on at the same time and the results of each of those quests enable subsequent quests to take place.

Also, in addition to the minor quests, each world should have a few major quests which each depend on the player having solved multiple minor quests (be in possession ofmultiple token 3s) (for example tokens 13, 23, 33, and 43 -- token 3 of quests 1, 2, 3, and 4).

And again, tokens are just numbers. I propose the quest numbering just to simplify understanding which tokens are which without a lot of cross-referencing.


Players working in groups see the script played out according to the tokens carried by the the LEADER of the group. Hence you may be involved in a more advanced quest if you are following someone. The tokens need to be carefully designed so that if I receive an advanced token by completing a quest with a more powerful leader, that token does not prevent me from doing the 'earlier' quests when I subsequently play on my own.

Each world should have an official climax quest which solves the problem stated in the initial piece of narration which scrolls by during the credits for the world (the only narration). But even this does not 'end' the world. The player can then wander around for as long as he or she likes, helping weaker players. Though there is feedback to encourage the powerful player to not 'lead' since only if a newbie is the leader in a scene will the quests be doled out again.

I don't expect that to make too much sense until you have played with the script engine a little.

  Copyright 1999-2014, Synthetic Reality Co. All Rights Reserved